尝试使用 Apache spark Java API 透视表

Posted

技术标签:

【中文标题】尝试使用 Apache spark Java API 透视表【英文标题】:Trying to pivot a table using Apache spark Java API 【发布时间】:2015-08-06 12:32:59 【问题描述】:

我在 csv 文件中有一个数据集,谁能告诉我如何使用 Apache spark java 程序在特定列上旋转数据集。

样本数据:

id | name | city
1    john   Newyork
2    smith  LA
3    mike   Boston

我正在尝试以城市列为中心

结果应该是:

id | name | Newyork | LA | Boston
1   john      1        0     0
2   smith     0        1     0
3   mike      0        0     1

..谢谢,提前

【问题讨论】:

我认为你需要重新格式化你的示例数据 【参考方案1】:

您可以使用 mllib 稀疏和密集向量: https://spark.apache.org/docs/latest/mllib-data-types.html

您可以使用 RDD.zipWithUniqueId 创建一个用于名称的查找表和另一个用于城市的查找表,这会将 Long 转换为双精度,并使用双精度输入密集向量。 希望对您有所帮助。

【讨论】:

【参考方案2】:

Df.groupby(col("id")).pivot("city")

【讨论】:

以上是关于尝试使用 Apache spark Java API 透视表的主要内容,如果未能解决你的问题,请参考以下文章

org.apache.spark.SparkException:任务不可序列化,wh

从 apache Spark 运行 java 程序时出现 ClassNotFound 异常

使用java的apache spark中的决策树实现问题

将 Java Spark Sql 连接到 Mysql

org.apache.spark.SparkException:任务不可序列化 java

JavaPairRDD 到 Apache Spark 中的 DataFrame 与 java