Scala:将数组转换为DataFrame或RDD

时间:2018-05-29 20:27:32

标签: arrays scala list apache-spark

我目前正在使用Maven中的IntelliJ。 有没有办法将数组转换为数据帧或RDD,并将数组的第一部分作为标题?

我可以将数组转换为List,只要它可以转换为数据帧或RDD。

示例:

输入

val input = Array("Name, Number", "John, 9070", "Sara, 8041")

输出

+----+------+
|Name|Number|
+----+------+
|John| 9070 |
|Sara| 8041 |
+----+------+

1 个答案:

答案 0 :(得分:0)

import org.apache.spark.sql.SparkSession

val ss = SparkSession
  .builder
  .master("local[*]")
  .appName("test")
  .getOrCreate()

val input = Array("Name, Number", "John, 9070", "Sara, 8041")

val header = input.head.split(", ")
val data = input.tail
val rdd = ss.sparkContext.parallelize(data)
val df = rdd.map(x => (x.split(",")(0),x.split(",")(1))).toDF(header: _*)
df.show(false)

+----+------+
|Name|Number|
+----+------+
|John| 9070 |
|Sara| 8041 |
+----+------+