根据你提供的代码,我看到你正在使用 Spark 创建一个 DataFrame。从代码中可以看出,你已经将结果转换为了一个 RDD,并且定义了需要的字段和结构类型。
然而,在创建 DataFrame 时出现了问题。请确保 resultArray
中的元素类型与定义的 schema 相匹配。在你的代码中,resultArray
的每个元素是一个四元组 (data, AQI, primaryPollutant, airQualityLevel)
,其中 data
是字符串,AQI
是整数,primaryPollutant
和 airQualityLevel
都是字符串。
首先,我们需要将 resultArray
转换成 RDD[(String, Int, String, String)] 的形式。这样,DataFrame 将会有正确的列类型。
val resultRDD = spark.sparkContext.parallelize(resultArray) // 不需要调用 toSeq() 方法
val resultDF = spark.createDataFrame(resultRDD)
.toDF("日期", "AQI", "首要污染物", "空气质量等级")
这样修改后的代码应该能够成功创建 DataFrame。希望对你有所帮助!如有其他问题,请随时提问。
内容由零声教学AI助手提供,问题来源于学员提问