问题描述
我一直在使用pyspark在Databricks笔记本中出现错误。这与定义架构的方式有关。我究竟做错了什么?我正在将json文件读取到数据框并应用自定义架构。根据我的编码方式,该模式无法正常工作。
为什么我不断收到此错误消息?
from pyspark.sql.types import *
df_schema = StructType([(
StructField('data',StructType([(
StructField('altId',StringType(),True),StructField('audiences',ArrayType(StringType (),StructField('body',StringType (),StructField('firstCreated',StructField('headline',StructField('id',StructField('instancesOf',StructField('language',StructField('messageType',LongType(),StructField('mimeType',StructField('provider',StructField('pubStatus',StructField('subjects',ArrayType(StringType(),StructField('takeSequence',StructField('urgency',StructField('versionCreated',StructField('guid',StructField('timestamps',ArrayType(StructType([(
StructField('name',StructField('source',StructField('timestamp',True))],True)))])))])
path = "/files/jsonfile.json"
df = spark.read.json(path,schema = df_schema)
df.show()
当我在不应用架构的情况下读取JSON文件并执行df.schema时,这就是结果(如下)。如何将其正确转换为模式(如上所示)。
StructType(List(StructField(data,StructType(List(StructField(altId,StringType,true),StructField(audiences,ArrayType(StringType,StructField(body,StructField(firstCreated,StructField(headline,StructField(id,StructField(instancesOf,StructField(language,StructField(messageType,LongType,StructField(mimeType,StructField(provider,StructField(pubStatus,StructField(subjects,StructField(takeSequence,StructField(urgency,StructField(versionCreated,true))),StructField(guid,StructField(timestamps,ArrayType(StructType(List(StructField(name,StructField(source,StructField(timestamp,true)))
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)