如果我有一个字典列表,看起来像这样:
list = [{'a': 1, 'b': 2, 'c': 3}, {'b': 4, 'c': 5, 'd': 6, 'e': 7}]
如何将列表转换为 Spark 数据帧,而不会删除任何可能不在字典之间共享的键?例如,如果我使用 sc.parallelize(list).toDF(),则生成的数据帧将具有列 “a”、“b” 和 “c”,第二个字典的“a” 列为 null,第二个字典中的列 “d” 和 “e” 将被完全删除。
通过对字典顺序的调整,我看到它服从于列表中第一个出现的字典中的键,因此,如果我在上面的示例中交换字典,我生成的数据帧将具有列“b”,“c”,“d”和“e”。
实际上,此列表中将有两个以上的字典,并且无法保证字典之间的键是否相同,因此找到一种可靠的方法来处理可能不同的键非常重要。
海绵宝宝撒
相关分类