【发布时间】:2018-10-04 10:55:10
【问题描述】:
如下面的代码所示,我正在将一个 JSON 文件读入一个数据帧,然后从该数据帧中选择一些字段到另一个数据帧中。
df_record = spark.read.json("path/to/file.JSON",multiLine=True)
df_basicInfo = df_record.select(col("key1").alias("ID"), \
col("key2").alias("Status"), \
col("key3.ResponseType").alias("ResponseType"), \
col("key3.someIndicator").alias("SomeIndicator") \
)
问题是有时,JSON 文件没有我尝试获取的某些键 - 例如 ResponseType。所以它最终会抛出如下错误:
org.apache.spark.sql.AnalysisException: No such struct field ResponseType
如何在读取时不强制使用架构来解决此问题?当它不可用时,是否可以让它在该列下返回 NULL?
how do I detect if a spark dataframe has a column 确实提到了如何检测数据框中的列是否可用。然而,这个问题是关于如何使用该功能的。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql pyspark-sql