Spark shell и spark dataframe дают разные результаты для файлов parquet

#hive #apache-spark-sql

#hive #apache-spark-sql

Вопрос:

У меня есть данные в папке hdfs / data / published / r6 / omega, которая заполнена файлами parquet, в которой есть столбец etl_cre_tmst, в котором есть данные. Файлы parquet содержат данные

  val loc = "/data/published/r6/omega"
 val df = sqlContext.read.parquet(loc)
 df.select("etl_cre_tmst").show(10,false)

  --------------------- 
 |etl_cre_tmst         |
  --------------------- 
 |2019-03-08 04:41:10.0|
 |2019-03-08 04:41:10.0|
 |2019-03-08 04:41:10.0|
 |2019-03-08 04:41:10.0|
 |2019-03-08 04:41:10.0|
 |2019-03-08 04:41:10.0|
  --------------------- 
  

Но когда я пытаюсь получить доступ к данным через таблицу Hive, она показывает только null

  val df =  hc.sql("select etl_cre_tmst from db_r6.omega  ")
 df.show(10,false)

  --------------------- 
 |etl_cre_tmst         |
  --------------------- 
 |null|
 |null|
 |null|
 |null|
 |null|
  ---------------------
  

Схема файла parquet и тип данных для etl_cre_tmst совпадают со схемой таблицы hive и типом данных. тип данных для etl_cre_tmst является отметкой времени в файлах parquet, а также в таблице hive

Почему я получаю значения null при попытке получить те же данные через spark-shell. когда я обращаюсь к одной и той же таблице через оболочку hive, это работает. проблема только в spark shell

кто-нибудь может помочь?

Комментарии:

1. Возможно, проблема с преобразованием типа данных. Каков тип данных?

2. тип данных — это временная метка в файлах parquet, а также в таблице ddl hive