0
で読み取る
I、次のテストコードを持っている:MySQLはPySpark
from pyspark import SparkContext, SQLContext
sc = SparkContext('local')
sqlContext = SQLContext(sc)
print('Created spark context!')
if __name__ == '__main__':
df = sqlContext.read.format("jdbc").options(
url="jdbc:mysql://localhost/mysql",
driver="com.mysql.jdbc.Driver",
dbtable="users",
user="user",
password="****",
properties={"driver": 'com.mysql.jdbc.Driver'}
).load()
print(df)
私はそれを実行すると、私は次のエラーを取得:
Scalaでjava.lang.ClassNotFoundException: com.mysql.jdbc.Driver
、これは.jarファイルをインポートすることによって解決されるとmysql-connector-java
をプロジェクトに追加します。
しかし、Pythonでは、mysql-connectorファイルをリンクするようにpysparkモジュールに指示する方法はありません。
私は、これは
spark --package=mysql-connector-java testfile.py
のような例を用いて解決見てきました。しかし、それは奇妙な方法で私のスクリプトを実行するために私を強制するので、私はこれを望んでいません。私は、すべてのpythonの解決策やファイルをどこかにコピーするか、パスに何かを追加したいと思います。 SparkConf
前にsparkContext
の作成が初期化されるときは、に引数を渡すことができ
Hiにそれらを追加することができ、私はこのエラーを取得する: '要件は失敗しました:Mavenを提供座標は 'groupId:artifactId:version'の形式でなければなりません。指定された座標は:mysql-connector-java'です。引数は別の形式であると思われます。 –
このmysql:mysql-connector-java:5.1.39によって現在のパッケージを変更してください。それで –
また、 '--jars path_to/mysql-connector-java.jar'でaa jarとしてロードすることもできますが、もしあれば依存関係をインストールしません。私はそれが正しいように答えを修正します – MaFF