小编jig*_*saw的帖子

将类型化 JavaRDD 转换为行 JavaRDD

我正在尝试将类型化 rdd 转换为行 rdd,然后从中创建数据框。当我执行代码时它抛出异常。

代码:

JavaRDD<Counter> rdd = sc.parallelize(counters);
JavaRDD<Row> rowRDD = rdd.map((Function<Counter, Row>) RowFactory::create);

//I am using some schema here based on the class Counter
DataFrame df = sqlContext.createDataFrame(rowRDD, getSchema());
marineDF.show(); //throws Exception 
Run Code Online (Sandbox Code Playgroud)

从类型化 rdd 到行 rdd 的转换是否保留行工厂中的顺序?如果不是,我如何确定这一点?

班级代码 :

class Counter {
  long vid;
  byet[] bytes; 
  List<B> blist;
}
class B {
  String id;
  long count;
}
Run Code Online (Sandbox Code Playgroud)

架构:

private StructType getSchema() {
List<StructField> fields = new ArrayList<>();
fields.add(DataTypes.createStructField("vid", DataTypes.LongType, false));
fields.add(DataTypes.createStructField("bytes",DataTypes.createArrayType(DataTypes.ByteType), false));

List<StructField> …
Run Code Online (Sandbox Code Playgroud)

dataframe apache-spark rdd

2
推荐指数
1
解决办法
5761
查看次数

标签 统计

apache-spark ×1

dataframe ×1

rdd ×1