在 Spark SQL 中,当我尝试在 DataFrame 上使用映射函数时,出现以下错误。
DataFrame 类型中的方法 map(Function1, ClassTag) 不适用于参数 (new Function(){})
我也在关注 Spark 1.3 文档。https://spark.apache.org/docs/latest/sql-programming-guide.html#inferring-the-schema-using-reflection有没有一种解决办法?
这是我的测试代码。
// SQL can be run over RDDs that have been registered as tables.
DataFrame teenagers = sqlContext.sql("SELECT name FROM people WHERE age >= 13 AND age <= 19");
List<String> teenagerNames = teenagers.map(
new Function<Row, String>() {
public String call(Row row) {
return "Name: " + row.getString(0);
}
}).collect();
将其更改为:
Java 6 和 7
List<String> teenagerNames = teenagers.javaRDD().map(
new Function<Row, String>() {
public String call(Row row) {
return "Name: " + row.getString(0);
}
}).collect();
Java 8
List<String> t2 = teenagers.javaRDD().map(
row -> "Name: " + row.getString(0)
).collect();
一旦调用 javaRDD(),它的工作方式就像任何其他 RDD 映射函数一样。
这适用于 Spark 1.3.0 及更高版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)