scala—重载方法值json,并带有可选项:(jsonrdd:org.apache.spark.rdd.rdd[string]),使用intellij中的spark

5lhxktic  于 2021-05-27  发布在  Spark
关注(0)|答案(2)|浏览(647)

我正在尝试将json字符串jsonstr转换为scala中的sparkDataframe。为此目的使用intelij。

val spark = SparkSession.builder().appName("SparkExample").master("local[*]").getOrCreate()
val sc = spark.sparkContext
import spark.implicits._
var df = spark.read.json(Seq(jsonStr).toDS)
df.show()

使用maven编译/构建项目时出现以下错误。
错误:(243,29)重载了方法值json和替代项:(jsonrdd:org.apache.spark.rdd.rdd[string])org.apache.spark.sql.dataframe(jsonrdd:org.apache.spark.api.java.javardd[string])org.apache.spark.sql.dataframe(path:string*)org.apache.spark.sql.dataframe(path:string)org.apache.spark.sql.dataframe不能应用于(org.apache.spark.sql.dataset[string])var df=spark.read.json(seq(jsonstr).tods)
注意:在使用sbt构建时,我没有得到错误。

uyhoqukh

uyhoqukh1#

将代码更改为

val rdd = sc.parallelize(Seq(jsonStr))
var json_df = spark.read.json(rdd)
var df = json_df.toDS

(或将其组合成一个变量,由您决定)。
你想通过吗 Dataset 进入 spark.read.json 函数,从而产生错误。

j5fpnvbx

j5fpnvbx2#

spark 2.2.0中介绍了以下方法

def json(jsonDataset: Dataset[String]): DataFrame =

请更正maven的pom.xml文件中spark的版本

相关问题