Использование Redshift JDBC Jar в spark submit не позволяет свече подключаться к каталогу Glue - PullRequest
0 голосов
/ 29 октября 2018

Я могу подключиться к Redshift и Glue из задания спарка на EMR отдельно, но когда я хочу одновременно запросить таблицы красного смещения и каталог клея в задании спарка. Когда я использую драйвер jdbc, предоставленный EMR (/usr/share/aws/redshift/jdbc/RedshiftJDBC41.jar) в искровой отправке. Я сталкиваюсь с этой ошибкой --- pyspark.sql.utils.AnalysisException: u'java.lang.ExceptionInInitializerError: null; '

После HiveUtils: Инициализация HiveMetastoreConnection версии 1.2.1 с использованием классов Spark. шаг. (после этого шага предполагается поговорить с Клеем)

Моя искра отправки выглядит как ниже

spark-submit --packages com.databricks: spark-redshift_2.10: 0.5.2 --jars /usr/share/aws/redshift/jdbc/RedshiftJDBC41.jar,spark-redshift_2.10-2.0.0. jar-min-json-0.9.4.jar t.py

образец кода

from pyspark.sql import SparkSession

spark = SparkSession.builder\
            .config("hive.metastore.client.factory.class", "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory")\
            .enableHiveSupport()\
            .getOrCreate();

query_k = """
          select * from table limit 10  """

s3TempDir = "s3://path"
jdbcURL = "jdbc:redshift:XXX!"

df = spark.read.format("com.databricks.spark.redshift")\
        .option("url", jdbcURL)\
        .option("tempdir", s3TempDir)\
        .option("query", query_k).load()
df.show()
...