Паркетные поля, показывающие NULL при чтении через HIVE, НО, показывающие значения при чтении через spark

Я записываю свой искровой поток данных в виде файла паркета в моей HDFS. Я создал таблицу кустов в верхней части этой папки HDFS. моя искривленная структурированная команда потоковой записи выглядит следующим образом:

   parquet_frame.writeStream.option("compression", "none").option("latestFirst", "true").option("startingOffsets", "latest").option("checkpointLocation", "/user/ddd/openareacheckpoint_feb/").outputMode("append").trigger(Trigger.ProcessingTime("10 seconds")).partitionBy("dfo_data_dt").format("parquet").option("path", "hdfs://ddd/apps/hive/warehouse/ddddd.db/frg_drag/").start().awaitTermination()

если я пытаюсь прочитать данные из HIVE, я получаю NULL для двойных типов данных, типов данных INT за исключением строки и BIGINT.

НО тот же файл HDFS, который я прочитал через оболочку spark, и он получает сгенерированные значения без NULL. команда в спарке прочитать файл паркета:

val pp = spark.read.parquet("hdfs://ddd/apps/hive/warehouse/ddddd.db/frg_drag/dfo_data_dt=20190225/")
   pp.show

мой оператор создания таблицы в HIVE выглядит следующим образом:

        CREATE TABLE `ddddd.frg_drag`(
     `unit` string,
     `pol` string,
     `lop` string,
     `gok` string,
     `dfo_call_group` string,
     `dfo_dfr` double,
     `dfo_dfrs` double,
     `dfo_dfrf` double,
     `dfo_dfra` double,
     `dfo_dfrgg` double,
     `dfo_dfrqq` double,
     `dfo_w_percent` double,
     `dfo_afv_percent` double,
     `dfo_endfd` double,
     `dfo_time` timestamp,
     `dfo_data_hour` int,
     `dfo_data_minute` int)
   PARTITIONED BY (
     `dfo_data_dt` bigint)
   ROW FORMAT SERDE
     'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
   STORED AS INPUTFORMAT
     'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
   OUTPUTFORMAT
     'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
   LOCATION
     'hdfs://ddd/apps/hive/warehouse/ddddd.db/frg_drag'
   TBLPROPERTIES (
      'transient_lastDdlTime'='1551108381')

Может ли кто-нибудь помочь мне, как можно решить эту проблему. Я новичок в мире искры

0 ответов

Другие вопросы по тегам