Pyspark Dataframe, данные вставляются в раздел по умолчанию, несмотря на значения - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть небольшой скрипт на python, который выбирает столбцы из существующей таблицы и сохраняет в dataFrame, а затем записывает в разделенную таблицу (table2), проблема, с которой я сталкиваюсь, заключается в том, что, несмотря на столбец раздела tran_date присутствует в конце SQL с правильными значениями, он вставляется в таблицу разделов как HIVE_DEFAULT_PARTITION

Я создал table2 с разделами

PARTITIONED BY (  `tran_date` varchar(10) )

Вот мой код:

from pyspark.context import SparkContext
from pyspark.sql import HiveContext
sqlContext = HiveContext(sc)
sqlContext.setConf("hive.exec.dynamic.partition", "true")
sqlContext.setConf("hive.exec.dynamic.partition.mode", "nonstrict")
df = sqlContext.sql(""" select  A , B , tran_date  from table1 """)
df.write.mode("append").partitionBy('tran_date').saveAsTable("table2");

когда я проверяю значения df.select ("tran_date"), он показывает реальные значения когда я проверяю значения в table2, это все по умолчанию, за исключением того, что одна строка имеет метку времени эпохи

+-------------+--+
|  tran_date  |
+-------------+--+
| 1534809837  |
| __HIVE_DEF  |
+-------------+--+

Почему tran_date по умолчанию это делает? где датафрейм имеет значения ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...