在 Apache Spark 中使用 toDF 方法乱序创建数据框

Creating data frame out of sequence using toDF method in Apache Spark

我使用 Spark 2.4.4 并尝试获取下面给出的数据框。

val spark =  SparkSession
            .builder
            .master("local[*]")
            .appName("App")
            .getOrCreate 

import spark.sqlContext.implicits._  
import spark.implicits._

val justNow = spark.sparkContext.parallelize( 
        Seq(Row("1", "One")
           ,Row("2", "Tow")
        )
).toDF

我在 main 方法中定义了上面的代码。但是我得到一个错误,toDF 不是 RDD 中定义的函数。我提到了 Whosebug 上的其他帖子,以包含消除错误的明确说明。我还是明白了。

error: value toDF is not a member of org.apache.spark.rdd.RDD[org.apache.spark.sql.Row]
possible cause: maybe a semicolon is missing before `value toDF'?
Error occurred in an application involving default arguments. 

有人可以帮忙吗。谢谢!

您可以改用 createDataFrame 方法。 toDF 不适用于行的 RDD。

import org.apache.spark.sql.types._
import org.apache.spark.sql.Row

val schema = StructType(Seq(StructField("col1",StringType), StructField("col2",StringType)))
val df = spark.createDataFrame(sc.parallelize(Seq(Row("1", "One"),Row("2", "Tow"))), schema)

df.show
+----+----+
|col1|col2|
+----+----+
|   1| One|
|   2| Tow|
+----+----+