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

已弃用方法sparksession.read.json(JavaRDD)的替代方法,java,apache-spark,Java,Apache Spark,我正在使用sparksessions read().json方法在将json文件转换为拼花地板文件之前读取它,它工作正常,但是.json(JAVARDD)方法显示为不推荐使用的方法。我们可以有其他的方法吗。 当前使用java:spark 2.4.3版 我已经查阅了spark库的文档,但没有找到替代方法 JavaSparkContext sc1 = JavaSparkContext.fromSparkContext(SparkContext.getOrCreate()); JavaRDD<S

我正在使用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);
JavaSparkContext sc1=JavaSparkContext.fromSparkContext(SparkContext.getOrCreate());
JavaRDD-rddData=sc1.parallelize(数据);
数据集dataDF=spark.read().json(rddData);
json方法是否显示为不推荐的方法?我们可以有其他的方法吗

我经历过

在这里,他们建议使用SqlContext方法,这也是不推荐使用的方法


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

似乎您所要做的就是将rdd转换为
数据集
(正如@realpoint建议的那样):

数据集dataDF_spark24=spark.read().json(spark.createDataset(rddData.rdd(),Encoders.STRING()); 或者,如果您没有被保持
JavaRDD-rddData=…
所束缚,则可以进一步简化:

Dataset<String> dfData = spark.createDataset(data, Encoders.STRING());
Dataset<Row> dataDF_spark24 = spark.read().json(dfData);
Dataset-dfData=spark.createDataset(数据,Encoders.STRING());
数据集dataDF_spark24=spark.read().json(dfData);

首先,您使用的是原始类型。您应该使用
JavaRDD
Dataset
)(如果它们确实是行的rdd/Dataset)。不要让它们生的。第二,您是否阅读了?Not mable as List data=Arrays.asList(object)中的建议;JavaRDD-rddData=sc1.parallelize(数据);因此无法转换字符串类型的数据。或者,直接从数据创建数据集,而不是通过RDD.Fair(假设不需要保留
rddData
)@mazaneicha:非常感谢。它对我正在寻找的东西起了作用。:)
Dataset<String> dfData = spark.createDataset(data, Encoders.STRING());
Dataset<Row> dataDF_spark24 = spark.read().json(dfData);