在 Pyspark 中动态转换数据类型

问题描述 投票:0回答:1

我正在从 PostgresSQL 创建一个 parquet 文件,它的所有内容都标记为 varchar 列。一旦我们在 ADLS 中拥有文件,我们希望使用 Python/Pyspark 根据 Azure databricks 中的日期、整数、varchar 字段等数据来转换数据类型。

相同的代码需要由多个文件使用具有不同的模式,因此需要一个通用过程,没有硬编码值。

我有用户 inferSchema=True 但它仍然将 int 读取为字符串。 所以想要一种自动投射字段的方法

python dataframe pyspark casting databricks
1个回答
0
投票
  1. 您可以将文件中的前 10 行读入 pandas 数据帧。

  2. 然后使用

    pandas.DataFrame.convert_dtypes
    函数将字符串数据类型转换为最合适的数据类型。

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.convert_dtypes.html

  1. 将该 pandas 数据帧转换为 pyspark 数据帧。

  2. 获取 pyspark 数据框的架构使用

    pyspark.sql.DataFrame.schema

https://spark.apache.org/docs/3.1.3/api/python/reference/api/pyspark.sql.DataFrame.schema.html

© www.soinside.com 2019 - 2024. All rights reserved.