jav*_*dba 23 python py4j apache-spark
我有一些Java的第三方数据库客户端库.我想通过它访问它们
java_gateway.py
Run Code Online (Sandbox Code Playgroud)
例如:通过java网关使python客户端可以使用客户端类(不是jdbc驱动程序!):
java_import(gateway.jvm, "org.mydatabase.MyDBClient")
Run Code Online (Sandbox Code Playgroud)
目前尚不清楚将第三方库添加到jvm类路径的位置.我试图添加到compute-classpath.sh,但这似乎没有工作:我明白了
Py4jError: Trying to call a package
Run Code Online (Sandbox Code Playgroud)
此外,与Hive比较时:hive jar文件不是通过compute-classpath.sh加载的,所以这让我很怀疑.似乎还有一些其他机制可以设置jvm side classpath.
小智 25
您可以将外部jar作为参数添加到pyspark
pyspark --jars file1.jar,file2.jar
Run Code Online (Sandbox Code Playgroud)
AAB*_*AAB 21
您可以在运行时使用Spark配置添加jar文件的路径.
这是一个例子:
conf = SparkConf().set("spark.jars", "/path-to-jar/spark-streaming-kafka-0-8-assembly_2.11-2.2.1.jar")
sc = SparkContext( conf=conf)
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅文档.
Rya*_*hou 12
您可以--jars xxx.jar在使用spark-submit时添加
./bin/spark-submit --jars xxx.jar your_spark_script.py
Run Code Online (Sandbox Code Playgroud)
或设置环境变量 SPARK_CLASSPATH
SPARK_CLASSPATH='/path/xxx.jar:/path/xx2.jar' your_spark_script.py
Run Code Online (Sandbox Code Playgroud)
your_spark_script.py 是由pyspark API编写的
小智 7
除了接受的答案之外,您还有以下选择:
如果您在虚拟环境中,那么您可以将其放入
例如lib/python3.7/site-packages/pyspark/jars
如果你想让java发现它那么你可以把你的jre安装ext/目录放在下面
小智 5
例如:您已在C盘中提取了名为sparkts的文件夹中的jar文件,其值应为:C:\ sparkts
以上所有答案均不适用于我
我与pyspark所做的是
pyspark --py-files /path/to/jar/xxxx.jar
Run Code Online (Sandbox Code Playgroud)
对于Jupyter Notebook:
spark = (SparkSession
.builder
.appName("Spark_Test")
.master('yarn-client')
.config("spark.sql.warehouse.dir", "/user/hive/warehouse")
.config("spark.executor.cores", "4")
.config("spark.executor.instances", "2")
.config("spark.sql.shuffle.partitions","8")
.enableHiveSupport()
.getOrCreate())
# Do this
spark.sparkContext.addPyFile("/path/to/jar/xxxx.jar")
Run Code Online (Sandbox Code Playgroud)
链接到我找到它的源:https : //github.com/graphframes/graphframes/issues/104
| 归档时间: |
|
| 查看次数: |
34929 次 |
| 最近记录: |