我尝试使用pyspark从VerticaDb获取数据,但出现了名为“类未找到异常”的错误。
错误:Py4Java错误:调用o165.load时出错。原因:java.lang.ClassNotFoundException:找不到数据源:数据源.垂直数据源
我的代码是:
from pyspark import SparkContext, SparkConf
from pyspark.sql import SQLContext, SparkSession
from pyspark import sql
# Create the spark session
spark = SparkSession \
.builder \
.appName("Vertica Connector Pyspark Example") \
.getOrCreate()
spark_context = spark.sparkContext
sql_context = sql.SQLContext(spark_context)
# The name of our connector for Spark to look up
format = "com.vertica.spark.datasource.VerticaSource"
# Set connector options based on our Docker setup
table = "*****"
db = "*****"
user = "********"
password = "********"
host = "******"
part = "1";
staging_fs_url="****"
# spark.read.format("com.vertica.spark.datasource.VerticaSource").options(opt).load()
readDf = spark.read.load(
# Spark format
format=format,
# Connector specific options
host=host,
user=user,
password=password,
db=db,
table=table)
# Print the DataFrame contents
readDf.show()
谢谢
1条答案
按热度按时间ktca8awb1#
这是关于如何在Spark中启用Vertica作为数据源的官方文档。
用于Apache Spark的Vertica连接器被打包为JAR文件。您可以在Spark集群上安装此文件,以使Spark和Vertica能够交换数据。除了连接器JAR文件外,您还需要Vertica JDBC客户端库。连接器使用此库连接到Vertica数据库。
这两个库都随Vertica服务器一起安装,并可在Vertica集群中的所有节点上的以下位置获得:
Spark连接器文件位于/opt/vertica/packages/SparkConnector/lib中。
JDBC客户端库的文件名为/opt/vertica/java/vertica-jdbc.jar。
确保Vertica JDBC jar被复制到Spark库路径。
Getting the Spark Connector
Deploying the Vertica Connector for Apache Spark