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

问题描述 投票:6回答:1

我不知道编码器是否可以从RDD下面创建数据集的正确实现?

例如

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));

线程“主”中的异常java.lang.AssertionError:断言失败在scala.Predef $ .assert(Predef.scala:165)在org.apache.spark.sql.catalyst.encoders.ExpressionEncoder $ .javaBean(ExpressionEncoder.scala:90)在org.apache.spark.sql.Encoders $ .bean(Encoders.scala:142)在org.apache.spark.sql.Encoders.bean(Encoders.scala)

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

java apache-spark apache-spark-sql
1个回答
0
投票

请先尝试将其转换为DataFrame,然后再转换为Dataset

© www.soinside.com 2019 - 2024. All rights reserved.