我从一个文件夹中加载json文件列表,每个文件都以一个数字结尾,因此我使用通配符一次加载所有文件。
raw_assignments_2 = spark.read.option("multiline","true").option(schema=schema).json("Assignments_*.json")
我在一些文件中缺少一个键/值,spark在将数据读入df时忽略了这些文件。
例如,
我的文件1包含以下键及其值
[{ "id": 8731,
"resource_type":"assignment",
"assignee_id":2478
"status":"complete"}]
我的文件2只包含三个键
[{ "id": 8731,
"resource_type":"assignment",
"assignee_id":2478}]
id、resource\u type、assignee\u id是每个json文件中的必填字段,其中status不是必填字段。当json文件中没有键时,如何将状态提取到dataframe中并分配空值
1条答案
按热度按时间gab6jxml1#
在模式定义中,可以设置参数
nullable=True
然后将加载json并将缺少的字段设置为null。如果您想要一个专用的状态标志,您可以在以后进行筛选null
强制列上的。缺点:它还将标记json中存在但具有
null