Внешний стол на паркетных файлах. .count () работает, .show () не работает - PullRequest
1 голос
/ 04 июля 2019

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

CREATE EXTERNAL TABLE foobarbaz (
      src_file string,
      [...]
      temperature string
      )
      PARTITIONED BY (dt string)
      STORED AS PARQUET
      LOCATION '{1}'

Если я тогда запусту

df = spark.table(foobarbaz)
print(df.count())

Я получаю правильный ненулевой результат.

Если я бегу

df = spark.table(foobarbaz)
df.show()

PySpark поднимает

py4j.protocol.Py4JJavaError: Произошла ошибка при вызове o95.showString. [...] Вызвано: java.lang.UnsupportedOperationException

Почему?

полный возврат

1 Ответ

0 голосов
/ 04 июля 2019

Я обнаружил проблему, характерную для моей ситуации, которая все еще может иметь отношение к будущим читателям. Я извлек схему, используя паркетные инструменты. Один столбец был указан как int96, поэтому в определении схемы я наивно использовал тип int для этого столбца. Более тщательное расследование показало, что колонка была типа datetime. Изменение определения схемы соответственно решило проблему.

...