我在Cloudera YARN上的Spark 1.5上使用PySpark,在Centos 6機器上使用Python 3.3。 SQL Server實例是SQL Server Enterprise 64位。下面列出了SQL Server驅動程序; sqljdbc4.jar;我已經加入到我的.bashrcPySpark 1.5&MSSQL jdbc
export SPARK_CLASSPATH="/var/lib/spark/sqljdbc4.jar"
export PYSPARK_SUBMIT_ARGS="--conf spark.executor.extraClassPath="/var/lib/spark/sqljdbc4.jar" --driver-class-path="/var/lib/spark/sqljdbc4.jar" --jars="/var/lib/spark/sqljdbc4.jar" --master yarn --deploy-mode client"
我能看到的確認,當我啓動火花
SPARK_CLASSPATH was detected (set to '/var/lib/spark/sqljdbc4.jar')
我有一個數據幀,看起來像這樣的模式
root
|-- daytetime: timestamp (nullable = true)
|-- ip: string (nullable = true)
|-- tech: string (nullable = true)
|-- th: string (nullable = true)
|-- car: string (nullable = true)
|-- min_dayte: timestamp (nullable = true)
|-- max_dayte: timestamp (nullable = true)
我有在我的MS SQL服務器中創建了一個名爲'dbo.shaping'的空表,其中3個時間戳列將是datetime2(7)和其他nvarchar(50)。
我嘗試將數據幀從PySpark使用此
properties = {"user": "<username>", "password": "<password>"}
df.write.format('jdbc').options(url='<IP>:1433/<dbname>', dbtable='dbo.shaping',driver="com.microsoft.sqlserver.jdbc.SQLServerDriver",properties=properties)
我得到以下追蹤誤差
Py4JError: An error occurred while calling o250.option. Trace:
py4j.Py4JException: Method option([class java.lang.String, class java.util.HashMap]) does not exist
at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:333)
at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:342)
at py4j.Gateway.invoke(Gateway.java:252)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:207)
at java.lang.Thread.run(Thread.java:744)
是我的方法至少是正確的,也許這錯誤與寫作出口特定類型的數據,即,我有一個數據結構的問題,而不是我的代碼?
你復活一個問題,這是一歲多。你有沒有證實它仍然是相關的問題(面對像更新版本的軟件)? –
此下的軟件更新不可能。必須是pyspark 1.5解決方案。 – PR102012
pyspark 1.5是一回事,但SQL Server的Microsoft JDBC驅動程序也經歷了更新。您的錯誤具有組件之間版本不匹配的所有特徵,但不清楚哪些組件是錯誤的。我建議明確列出您使用的所有版本(python,pyspark,JDBC驅動程序,SQL Server,OS)的版本號,否則有人再現它的希望渺茫。 (這也是爲什麼我懷疑這是「廣泛適用於大量觀衆」,但我沒有pyspark的經驗。) –