Apache spark 位于sun.reflect.GeneratedMethodAccessor67.invoke(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:498) 位于py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) 位于py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) 在py4j.Gateway.invoke处(Gateway.java:282) 位于py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) 在py4j.commands.CallCommand.execute(CallCommand.java:79) 在py4j.GatewayConnection.run处(GatewayConnection.java:238) 运行(Thread.java:748)

Apache spark 位于sun.reflect.GeneratedMethodAccessor67.invoke(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:498) 位于py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) 位于py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) 在py4j.Gateway.invoke处(Gateway.java:282) 位于py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) 在py4j.commands.CallCommand.execute(CallCommand.java:79) 在py4j.GatewayConnection.run处(GatewayConnection.java:238) 运行(Thread.java:748),apache-spark,jdbc,pyspark,apache-spark-sql,jupyter-notebook,Apache Spark,Jdbc,Pyspark,Apache Spark Sql,Jupyter Notebook,用包更改了代码 这也是openshift,其中所有组件都作为POD运行,无法访问外部环境 java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver 这就说明了一切。您必须使用JDBC驱动程序for MySQL启动pyspark(或环境),使用--驱动程序类路径或类似工具(这将特定于Jupyter) 用于Jupyter笔记本电脑 复制自: 如果使用Jupyter Notebook,应设置PYSPARK\u SUBMIT\u ARGS环境变量

用包更改了代码

这也是openshift,其中所有组件都作为POD运行,无法访问外部环境

java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver

这就说明了一切。您必须使用JDBC驱动程序for MySQL启动
pyspark
(或环境),使用
--驱动程序类路径
或类似工具(这将特定于Jupyter)

用于Jupyter笔记本电脑 复制自:

如果使用Jupyter Notebook,应设置
PYSPARK\u SUBMIT\u ARGS
环境变量,如下所示:

import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.postgresql:postgresql:42.1.1 pyspark-shell'

更改
--packages
以引用MySQL JDBC驱动程序。

一旦转到spark的安装路径,就会有一个
jars
文件夹。下载您的mysql jdbc jar文件并将其放入
jars
文件夹,这样您就不需要任何命令或代码选项。

作为一个开放的轮班环境,所有这些容器都作为不可变的pod运行。所以我无法将JAR复制到环境中。我已经尝试了这些方法中的每一种,但都失败了,并且出现了相同的错误。import os os.environ['PYSPARK\u SUBMIT_ARGS']='--packages mysql:mysql connector-java:jar:8.0.21 PYSPARK shell'@NIkhilMehta您可以编辑您的问题并使用
import
--packages
添加单元格的输出吗?查看Jupyter日志以了解更多信息。由于
--packages
试图从公共回购中访问jar,因此一个明显的问题是“您是否可以从env访问Internet?”使用--packages的输出编辑代码。由于这是一个开放、安全的环境,pod内无法访问互联网。
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.postgresql:postgresql:42.1.1 pyspark-shell'