【发布时间】:2020-06-09 11:01:46
【问题描述】:
我有带有架构的 DF1:
df1 = spark.read.parquet(load_path1)
df1.printSchema()
root
|-- PRODUCT_OFFERING_ID: string (nullable = true)
|-- CREATED_BY: string (nullable = true)
|-- CREATION_DATE: string (nullable = true)
和 DF2:
df2 = spark.read.parquet(load_path2)
df2.printSchema()
root
|-- PRODUCT_OFFERING_ID: decimal(38,10) (nullable = true)
|-- CREATED_BY: decimal(38,10) (nullable = true)
|-- CREATION_DATE: timestamp (nullable = true)
现在我想合并这两个数据帧..
有时,由于架构不同,当我尝试 UNION 这两个 DF 时会出错..
如何设置 DF2 与 DF1 具有完全相同的架构(在加载期间)?
我试过了:
df2 = spark.read.parquet(load_path2).schema(df1.schema)
得到错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'StructType' object is not callable
或者我应该转换它(一旦读取 DF2)?
谢谢。
【问题讨论】:
标签: dataframe apache-spark pyspark schema