Spark не использует информацию о разделах из многораздельной внешней таблицы Hive - PullRequest
0 голосов
/ 21 января 2020

У меня есть сложная / вложенная Hive-External таблица, которая создается поверх HDFS (файлы в формате avro). Когда я запускаю запрос куста, он показывает все записи и разделы.

Однако, когда я использую ту же таблицу в Spark:

val df =  spark
.read
.format("avro")
.load("avro_files")
.option("avroSchema", Schema.toString)

Он не показывает столбец раздела.

Но когда я использую spark.sql("select * from hive_External_Table"), это нормально, и я вижу его в созданном фрейме данных, но проблема в том, что я не могу вручную передать предоставленную схему.

Обратите внимание, когда Я посмотрел на данные, столбец раздела не является частью основных сохраненных данных, но я вижу это, когда запрашиваю таблицу через Hive. Я также вижу столбец раздела, когда пытаюсь загрузить файлы avro с помощью pyspark:

df = ( sqlContext.read.format("com.databricks.spark.avro").option("avroSchema", pegIndivSchema).load('avro_files'))

Так мне было интересно, что это такое?

1 Ответ

0 голосов
/ 21 января 2020

Пожалуйста, проверьте столбцы, присутствующие в значении Schema.toString, которое вы использовали в части схемы опции. Это будет иметь отсутствующий столбец раздела. Также попробуйте использовать ту же схему, которую вы использовали в коде pyspark.

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