在 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|
+----+----+
我使用 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|
+----+----+