在Athena Spark Notebook转换JSON时遇RDD不支持错误,求解决
解决Athena环境下Spark无法创建RDD的问题
问题原因
你的代码使用了sc.parallelize()创建RDD,但Athena的Spark运行环境不支持RDD操作,因此触发报错。
替代方案
无需依赖RDD,直接使用Spark DataFrame API实现JSON转DataFrame:
方案1:直接用createDataFrame(适用于Python字典/解析后的JSON对象)
如果my_json是Python字典格式:
from pyspark.sql import Row # 将单个JSON对象转为Row后创建DataFrame df = spark.createDataFrame([Row(**my_json)]) df.show(truncate=False)
如果my_json是JSON字符串,先解析为字典再处理:
import json from pyspark.sql import Row # 解析JSON字符串为Python字典 parsed_json = json.loads(my_json) df = spark.createDataFrame([Row(**parsed_json)]) df.show(truncate=False)
方案2:直接传入字符串列表给spark.read.json
spark.read.json支持直接接收字符串迭代器,无需通过RDD中转:
df = spark.read.json([my_json]) df.show(truncate=False)
内容的提问来源于stack exchange,提问作者Gilles Bodart
相关产品推荐
相关产品推荐

