Pyspark - Как установить схему при чтении файла паркета из другого DF? - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть 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)

Теперь я хочу объединить эти 2 кадра данных ..
Иногда при попытке выдает ошибки ОБЪЕДИНИТЬ эти 2 DF из-за разных схем 1013 *

Получение ошибки:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'StructType' object is not callable

Или я должен вместо этого CAST (после прочтения DF2)?

Спасибо.

1 Ответ

0 голосов
/ 25 февраля 2020

Переместить .schema() до .parquet(), затем spark прочитает файл паркета с указанной схемой

df2 = spark.read.schema(df1.schema).parquet(load_path2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...