Как читать файлы ORC без метастазов в pyspark 2.0

Я хочу прочитать некоторые файлы ORC, используя pyspark 2.0 без метастазов. Теоретически это возможно, поскольку схема данных встроена в файл ORC. Но вот что я получил:

[me @ hostname ~] $ / usr / local / spark-2.0.0-bin-hadoop2.6 / bin / pyspark Python 2.7.11 (по умолчанию, 18 февраля 2016 г., 13:54:48)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] в linux2 Для получения дополнительной информации введите "help", "copyright", "credits" или "license". Установка уровня журнала по умолчанию "WARN". Чтобы настроить уровень ведения журнала, используйте sc.setLogLevel(newLevel). Добро пожаловать в ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\ версии 2.0.0
      /_/ Использование Python версии 2.7.11 (по умолчанию, 18 февраля 2016 г., 13:54:48)
SparkSession доступен как 'spark'.
>>> df=spark.read.orc('/my/orc/file')
16/08/21 22:29:38 WARN util.NativeCodeLoader: невозможно загрузить библиотеку native-hadoop для вашей платформы... с использованием встроенного -java классы, где это применимо 16/08/21 22:30:00 ОШИБКА metastore.RetringHMSHandler: AlreadyExistsException(сообщение: база данных по умолчанию уже существует) в org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_database(HiveMetaStore.java:891) в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImplan.gho.jpgfj..Method.invoke(Method.java:498) в org.apache.hadoop.hive.metastore.RetringHMSHandler.invoke(RetriedHMSHandler.java:107) в com.sun.proxy.$Proxy21.create_database(Неизвестный источник) в орг.apache.hadoop.hive.metastore.HiveMetaStoreClient.createDatabase(HiveMetaStoreClient.java:644) в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод d) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) в java.lanke49.ho.d. org.apache.hadoop.hive.metastore.RetringMetaStoreClient.invoke(RetriedMetaStoreClient.java:156) в com.sun.proxy.$Proxy22.createDatabase(Неизвестный источник) в org.apache.hadoop.hive.ql.metadata.H createDatabase(Hive.java:306) в org.apache.spark.sql.hive.client.HiveClientImpl$$anonfun$createDatabase$1.apply$mcV$sp(HiveClientImpl.scala:291) в org.apache.spark.sql.hive.client.HiveClientImpl$$anonfun$createDatabase$1.apply(HiveClientImpl.scala:291) в org.apache.spark.sql.hive.client.HiveClientImpl $$ anonfun $ createDatabase $ 1.apply (HiveClientImpl: 29) org. 209) в орг.апаке he.spark.sql.hive.client.HiveClientImpl.retryLocked(HiveClientImpl.scala:208) в org.apache.spark.sql.hive.client.HiveClientImpl.withHiveState(HiveClientImpl.scalag. at. 251) sql.hive.client.HiveClientImpl.createDatabase(HiveClientImpl.scala:290) в org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$createDatabase$1.apply$mcV$sp(HiveExternalCatalog.scg. 99): apache.spark.sql.hive.HiveExternalCatalog$$anonfun$createDatabase$1.apply(HiveExternalCatalog.scala:99) в org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$createDatabase$1.apply(HiveExternalCatalog.scala 99:) в org.apache.spark.sql.hive.HiveExternalCatalog.withClient(HiveExternalCatalog.scala:72) в org.apache.spark.sql.hive.HiveExternalCatalog.createDatabase(HiveExternalCatalog.scala:98) в org.apache.spark.sql.catalyst.catalog.SessionCatalog.createDatabase(SessionCatalog.scala:147) в org.apache.spark.sql.catalyst.catalog.SessionCatalog.(SessionCatalog.scala:89) в org.apache.spark.sql.hive.HiveSessionCatalog.(HiveSessionCatalog.scala:51) в org.apache.spark.sql.hive.HiveSessionState.catalog$lzycompute(HiveSessionState.scala:49) в org.apache.spark.sql.hive.HiveSessionState.catalog(HiveSessionState.: 48) в org.apache.spark.sql.hive.HiveSessionState$$anon$1 (HiveSessionState.scala:63) в org.apache.spark.sql.hive.HiveSessionState.analyzer$lzycompute(HiveSessionState.scala:63) в org.apache.spark.sql.hive.HiveSessionState.analyzer(HiveSessionState.scala:62) в org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:49) в org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:64) в org.apache.spark.sql.SparkSession.baseRelationToDataFrame(SparkSession.scala:382) в org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala: в org.apache.spark.sql.DataFrameReader.orc(DataFrameReader.scala:450) в org.apache.spark.sql.DataFrameReader.orc(DataFrameReader.scala:439) в sun.reflect.NativeMethodAccessorImpl.invoke0(Native) на солнце.отражение.Нати veMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.jvinjvjvj (MethodInvoker.java:237) в py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) в py4j.Gateway.invoke(Gateway.java:280) в py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:12) на py4j.commands.CallCommand.execute(CallCommand.java:79) на py4j.GatewayConnection.run(GatewayConnection.java:211) на java.lang.Thread.run(Thread.java:745)

>>>

Как правильно читать файлы ORC?

1 ответ

Я понял проблему. Хотя pyspark сообщил об ошибке, загрузка данных из файла ORC во фрейм данных на самом деле не завершилась. Несмотря на сообщение об ошибке, на возвращаемый фрейм данных можно ссылаться без проблем.

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