Я настроил кластер EMR с включенным каталогом данных
Я могу получить доступ к каталогу данных, когда использую Zeppelin, но с заданиями / шагами, которые я отправляю, как:
aws emr add-steps --cluster-id j-XXXXXX --steps "Type=spark,Name=Test,Args=[--deploy-mode,cluster,--master,yarn,--conf,spark.yarn.submit.waitAppCompletion=false,--num-executors,2,--executor-cores,2,--executor-memory,8g,s3://XXXXXX/emr-test.py],ActionOnFailure=CONTINUE"
Я не вижу своего каталога данных, когда использую spark.sql("USE xxx")
ИЛИ spark.sql("SHOW DATABASES")
почему это так.
from pyspark import SparkContext
from pyspark.sql import SparkSession
sc = SparkContext()
spark = SparkSession \
.builder \
.appName("Test") \
.config("hive.metastore.client.factory.class", "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory") \
.getOrCreate()
spark.sql("USE ...")
spark.sql("SHOW TABLES").show()
spark.sql("SELECT querydatetime FROM flights LIMIT 10").show(10)
sc.stop()
Я получаю что-то вроде:
pyspark.sql.utils.AnalysisException: u"Database 'xxxxxx' not found;"