为了账号安全,请及时绑定邮箱和手机立即绑定

使用 pyspark 从 S3 读取 parquet 分区表正在从分区列中删除前导零

使用 pyspark 从 S3 读取 parquet 分区表正在从分区列中删除前导零

LEATH 2022-10-06 15:55:06
我已经使用 EMR(pyspark) 将 pyspark 数据帧作为镶木地板写入 s3,该数据由列 (A) 分区,即 StringType()在 S3 中,数据看起来像这样table_path:       A=0003           part-file.parquet       A=C456           part-file.parquet当我使用 pyspark 将其作为数据帧读回时,我在数据帧的“A”列中丢失了前导零。这是数据的样子df =  spark.read.parquet(table_path)df.show()| A  | B || 3  | ..||C456| ..|我不想在这里丢失前导零。预期结果是:| A  | B ||0003| ..||C456| ..|
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

在 delta 文档中找到了此问题的解决方案。


Spark 有一个默认启用的属性。使用此属性 spark 尝试推断分区列的架构。对于字符串类型的分区列,我们可以轻松地将其关闭。


# Update partition data type infer property

from pyspark.conf import SparkConf

from pyspark.sql import SparkSession, Window

conf = (SparkConf().set("spark.sql.sources.partitionColumnTypeInference.enabled", False))

sc=SparkSession.builder.config(conf=conf).getOrCreate()


查看完整回答
反对 回复 2022-10-06
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信