无法使用Pyspark连接到Presto db Hive目录

时间:2019-06-12 08:31:20

标签: apache-spark pyspark pyspark-sql presto

我正在尝试从Spark连接presto db(hive catalog)。当我尝试使用pyspark连接presto db时,我遇到了与SSLException相关的错误 如何从Pyspark成功连接presto db?

我正在AWS EMR中执行spark作业,并且配置单元元数据存储在AWS胶中。当我尝试从spark连接presto时,我最终会遇到SSLException。我正在使用spark-submit提交作业。


from pyspark.sql import SparkSession
from pyspark.sql.types import *
from pyspark.sql.functions import *

spark = SparkSession.builder.appName("Prestodb_test").getOrCreate()

getInfo = spark.read.format("jdbc")\
                    .option("url","jdbc:presto://localhost:port/hive/default")\
                    .option("driver", "com.facebook.presto.jdbc.PrestoDriver")\
                    .option("user", "username")\
                    .option("password", "*****")\
                    .option("SSL", “true”)\
                    .option("dbtable", "select query")\
                    .load()

    getInfo.count()

在执行代码时,出现如下错误:

  

py4j.protocol.Py4JJavaError:调用o153.load时发生错误。   :java.sql.SQLException:执行查询时出错           

     

com.facebook.presto.jdbc.PrestoStatement.internalExecute(PrestoStatement.java:274)   引起原因:java.io.UncheckedIOException:javax.net.ssl.SSLException:无法识别的SSL消息,纯文本连接?           在com.facebook.presto.jdbc.internal.client.JsonResponse.execute(JsonResponse.java:154)

当我尝试排除option(“ SSL”,“ true”)时,出现如下错误:

  

py4j.protocol.Py4JJavaError:调用o153.load时发生错误。   :java.sql.SQLException:在com.facebook.presto.jdbc.PrestoStatement.execute(PrestoStatement.java:227)处com.facebook.presto.jdbc.PrestoStatement.internalExecute(PrestoStatement.java:274)执行查询时出错

我正在尝试连接presto db并从配置单元表中查询并将数据加载到数据帧。您能帮助解决这个问题吗?

0 个答案:

没有答案