Pau*_* Wu 5 sql scala apache-spark rdd
Spark SQL 1.2.0查询返回JavaRDD.Spark SQL 1.3.0查询返回DataFrame.通过DataFrame.toJavaRDD将DataFrame转换为JavaRDD似乎需要花费很多时间.我试图使用DataFrame.map()并遇到一个令人费解的问题:
DataFrame df = sqlSC.sql(sql);
RDD<String> rdd = df.map(new AbstractFunction1<Row, String> (){
@Override
public String apply(Row t1) {
return t1.getString(0);
}
}, ?);
Run Code Online (Sandbox Code Playgroud)
"?" 应该是scala.reflect.ClassTag.我使用了ClassManifestFactory.fromClass(String.class)并且它不起作用.我该怎么说"?".
顺便说一句,http://spark.apache.org/docs/1.3.0/sql-programming-guide.html与RDDs部分的Java代码部分给出的例子没有得到纠正:它使用了"map(new Function) (){"."函数"在那里是不可接受的.它应该是"Function1".
小智 6
试试这个:
RDD<String> rdd = df.map(new AbstractFunction1<Row, String> (){
@Override
public String apply(Row t1) {
return t1.getString(0);
}
}, scala.reflect.ClassManifestFactory.fromClass(String.class));
Run Code Online (Sandbox Code Playgroud)
小智 0
尝试这个:
RDD<String> rdd = df.map(new AbstractFunction1<Row, String> (){
@Override
public String apply(Row t1) {
return t1.getString(0);
}
}, ClassManifestFactory$.MODULE$.fromClass(String.class));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3807 次 |
| 最近记录: |