如何如下创建Spark DF

时间:2019-12-11 09:52:35

标签: scala apache-spark

我需要如下创建一个Scala Spark DF。这个问题可能很愚蠢,但是需要知道什么是创建用于测试目的的小型结构的最佳方法

  1. 用于创建最小的DF。
  2. 用于创建最小的RDD。

到目前为止,我已经尝试了以下代码,但未成功:

val rdd2 = sc.parallelize(Seq("7","8","9"))

然后通过以下方式创建到DF

val dfSchema = Seq("col1", "col2", "col3") 

 rdd2.toDF(dfSchema: _*)

这是我想获取的示例数据框:

c1  c2  c3
1   2   3
4   5   6

2 个答案:

答案 0 :(得分:1)

abc_spark,这是一个示例,可用于轻松创建用于测试的数据框和RDD:

import spark.implicits._

val df = Seq(
      (1, 2, 3),
      (4, 5, 6)
    ).toDF("c1", "c2", "c3")

df.show(false)

+---+---+---+
|c1 |c2 |c3 |
+---+---+---+
|1  |2  |3  |
|4  |5  |6  |
+---+---+---+

val rdd: RDD[Row] = df.rdd

rdd.map{_.getAs[Int]("c2")}.foreach{println}

给予

5
2

答案 1 :(得分:1)

您在序列中缺少一个“()”。如下使用它:

scala> val df = sc.parallelize(Seq(("7","8","9"))).toDF("col1", "col2", "col3")

scala> df.show
+----+----+----+
|col1|col2|col3|
+----+----+----+
|   7|   8|   9|
+----+----+----+