替代已弃用的方法sparksession.read.json(JavaRDD)

raj*_*j03 2 java apache-spark apache-spark-sql

我使用 Sparksessions read().json 方法来读取 json 文件,然后将其转换为镶木地板文件,它工作正常,但 .json(JAVARDD) 方法显示为已弃用的方法。我们可以有替代方法吗?当前使用java:spark版本2.4.3

我已经浏览了 Spark 库的文档,但没有得到任何替代方法

JavaSparkContext sc1 = JavaSparkContext.fromSparkContext(SparkContext.getOrCreate());
JavaRDD<String> rddData = sc1.parallelize(data);
Dataset<Row> dataDF = spark.read().json(rddData);
Run Code Online (Sandbox Code Playgroud)

这里 .json 方法显示为已弃用的方法?我们可以有替代方法吗?

我已经完成了 How to parse JSON in Spark with fastxml without SparkSQL?

在这里他们建议使用 SqlContext 方法,该方法也已被弃用。

需要知道java Spark.read().json(JAVARDD对象)中.json的替代方法

maz*_*cha 5

似乎您所要做的就是将 rdd 转换为 a Dataset<String>(如 @RealSkeptic 建议的那样):

Dataset<Row> dataDF_spark24 = spark.read().json(spark.createDataset(rddData.rdd(), Encoders.STRING()));
Run Code Online (Sandbox Code Playgroud)

或者,如果你没有被 keep 束缚JavaRDD<String> rddData = ...,这可以进一步简化:

Dataset<String> dfData = spark.createDataset(data, Encoders.STRING());
Dataset<Row> dataDF_spark24 = spark.read().json(dfData);
Run Code Online (Sandbox Code Playgroud)