方法值json过载,有了替代品。(jsonRDD: org.apache.spark.rdd.RDD[String])在IntelliJ中使用Spark。

问题描述 投票:0回答:1

我正在尝试转换一个JSON字符串 jsonStr 到Scala中的Spark Dataframe中。使用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 (路径:String*)org.apache.spark.sql.DataFrame (路径:String*)org.apache.spark.sql.DataFrame (路径:String*)org. 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构建的时候没有得到这个错误。

scala apache-spark intellij-idea apache-spark-sql implicit
1个回答
1
投票

以下方法是在Spark 2.2.0中引入的。

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

请修改maven的pom.xml文件中的Spark版本。


0
投票

将你的代码改为

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

(或将其合并到一个变量中,由你决定)。

你正试图通过 Dataset 变成 spark.read.json 函数,因此出现错误。

© www.soinside.com 2019 - 2024. All rights reserved.