如何解决在 Apache Spark 中使用 toDF 方法乱序创建数据帧
我使用 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 中定义的函数。我参考了 stackoverflow 上的其他帖子以包含显式来消除错误。我仍然得到它。
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|
+----+----+
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。