我正在尝试从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并从配置单元表中查询并将数据加载到数据帧。您能帮助解决这个问题吗?