我有一个pyspark Dataframe 与下面的模式;
{'type': 'struct',
'fields': [{'name': 'from', 'type': 'long', 'nullable': True, 'metadata': {}},
{'name': 'to', 'type': 'long', 'nullable': True, 'metadata': {}},
{'name': 'weight', 'type': 'double', 'nullable': True, 'metadata': {}}]}
我需要按如下方式更新模式;
{'type': 'struct',
'fields': [{'name': 'from',
'type': 'long',
'nullable': True,
'metadata': {'HIVE_TYPE_STRING': 'bigint'}},
{'name': 'to',
'type': 'long',
'nullable': True,
'metadata': {'HIVE_TYPE_STRING': 'bigint'}},
{'name': 'weight',
'type': 'double',
'nullable': True,
'metadata': {'HIVE_TYPE_STRING': 'double'}}]}
如果有人能帮忙的话,我很感激
我尝试使用pandas数据框转换模式,但需要直接更新pyspark模式,而不将其转换为pandas数据框
1条答案
按热度按时间pdtvr36n1#
Spark 3.3升级
我想你会想在Dataframe中更改一个元数据字段。
要做到这一点,有一个名为
withMetadata
的方法。这里有一个文档链接:https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withMetadata.html结果为: