Spark创建数据集使用编码器,其中行是数组类型



我无法弄清楚,编码器从下方创建数据集的正确实现?

,例如

JavaRDD<Integer[]>rdd= sparkContext.parallelize(
                Arrays.asList(new Integer[][]{new Integer[]{1,2},
                new Integer[]{3,4}
                ,new Integer[]{6,7}}));

以下实施失败 -

DataSet<Integer> ds = sqlContext.createDataset(rdd.rdd(),Encoders.bean(Integer[].class));

线程" main" java.lang.assertionerror中的例外:断言失败 在scala.predef $ .assert(predef.scala:165) org.apache.spark.sql.catalyst.encoders.expressionencoder $ .Javabean(explsessencoder.scala:90) at org.apache.spark.sql.cododers $ .bean(encoders.scala:142)at org.apache.spark.sql.encoders.bean(encoders.scala)

如何为数组类型创建编码?谢谢!

请尝试先将其转换为数据框架,然后转换为数据集

Dataset<Integer[]> dataFrame = sqlContext.createDataFrame(rdd, Integer[].class);
Dataset<Integer[]> ds = dataFrame.as(Encoders.bean(Integer[].class));

相关内容

  • 没有找到相关文章

最新更新