首页 > 解决方案 > 替代已弃用的方法 sparksession.read.json(JavaRDD)

问题描述

我正在使用 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);

这里 .json 方法显示为不推荐使用的方法?我们可以为此提供替代方法吗?

我已经完成了 如何在没有 SparkSQL 的情况下使用 fastxml 在 Spark 中解析 JSON?

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

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

标签: javaapache-spark

解决方案


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

Dataset<Row> dataDF_spark24 = spark.read().json(spark.createDataset(rddData.rdd(), Encoders.STRING()));

或者,如果您没有通过 keep 绑定JavaRDD<String> rddData = ...,则可以进一步简化:

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

推荐阅读