如何在 Java 中从 SparseVectors 的 RDD 创建 DataFrame
Posted
技术标签:
【中文标题】如何在 Java 中从 SparseVectors 的 RDD 创建 DataFrame【英文标题】:How to create a DataFrame from RDD of SparseVectors in Java 【发布时间】:2017-04-12 19:36:43 【问题描述】:我试图将RDD
的SparseVector
转换为DataFrame
。我在Scala
和Python
中完成了此操作,但从未在Java
中完成此操作,确实可以在here 中找到答案。
我试图找到涵盖该主题的示例,但找不到任何示例。尽管如此,它的工作方式显然与 Scala 相同,但我无法复制它。
【问题讨论】:
【参考方案1】:我终于可以做到了。用于转换 SparseVector
的正确架构必须设置为 dataType
和 new VectorUDT
,请注意,如果您按照示例进行操作,它们通常会使用 DataTypes。something,所以很艰难。
List<StructField> fields = new ArrayList<>();
StructField field = DataTypes.createStructField("features", new VectorUDT(), true);
fields.add(field);
StructType schema = DataTypes.createStructType(fields);
【讨论】:
以上是关于如何在 Java 中从 SparseVectors 的 RDD 创建 DataFrame的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Java 中从 ArrayList 中切出 ArrayList?