gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 11:20:00 27 4
gpt4 key购买 nike

我无法弄清楚编码器从 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));

Exception in thread "main" java.lang.AssertionError: assertion failed at scala.Predef$.assert(Predef.scala:165) at org.apache.spark.sql.catalyst.encoders.ExpressionEncoder$.javaBean(ExpressionEncoder.scala:90) at org.apache.spark.sql.Encoders$.bean(Encoders.scala:142) at org.apache.spark.sql.Encoders.bean(Encoders.scala)



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

最佳答案

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

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

关于java - Spark 使用编码器创建数据集,其中 row 是数组类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46310783/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com