У меня есть сложная / вложенная 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'))
Так мне было интересно, что это такое?