我寫了從XML與數據庫中提取數據,我用Dataframe轉換和試圖加載到數據庫。
我已經安裝了這些庫,
com.databricks: spark-xml_2.12:0.15.0
com.microsoft.azure: spark-mssql-connector_2.11_2.4:1.0.2
和我的細胞了下麵的代碼,
df_Driver.write.format (“com.microsoft.sqlserver.jdbc.spark”)。選項(“url”, jdbcUrl) .mode(“覆蓋”)。選項(“數據表”、“table_name”)。jdbcUsername選項(“用戶”)。選項(“密碼”,jdbcPassword) .save ()
但它拋出一個錯誤
. lang。NoClassDefFoundError: org/apache/spark/internal/Logging $類
Py4JJavaError:調用o1055.save時發生一個錯誤。
:. lang。NoClassDefFoundError: org/apache/spark/internal/Logging $類
在com.microsoft.sqlserver.jdbc.spark.DefaultSource。< init > (DefaultSource.scala: 32)
在sun.reflect.NativeConstructorAccessorImpl。newInstance0(本地方法)
sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java: 62)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java: 45)
java.lang.reflect.Constructor.newInstance (Constructor.java: 423)
java.lang.Class.newInstance (Class.java: 442)
org.apache.spark.sql.execution.datasources.DataSource .lookupDataSourceV2美元(DataSource.scala: 809)
org.apache.spark.sql.DataFrameWriter.lookupV2Provider (DataFrameWriter.scala: 983)
org.apache.spark.sql.DataFrameWriter.saveInternal (DataFrameWriter.scala: 293)
org.apache.spark.sql.DataFrameWriter.save (DataFrameWriter.scala: 258)
在sun.reflect.NativeMethodAccessorImpl。invoke0(本地方法)
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java: 62)
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: 380)
py4j.Gateway.invoke (Gateway.java: 295)
py4j.commands.AbstractCommand.invokeMethod (AbstractCommand.java: 132)
py4j.commands.CallCommand.execute (CallCommand.java: 79)
py4j.GatewayConnection.run (GatewayConnection.java: 251)
java.lang.Thread.run (Thread.java: 748)
引起的:. lang。ClassNotFoundException: org.apache.spark.internal.Logging $類
java.net.URLClassLoader.findClass (URLClassLoader.java: 382)
java.lang.ClassLoader.loadClass (ClassLoader.java: 419)
com.databricks.backend.daemon.driver.ClassLoaders LibraryClassLoader.loadClass美元(ClassLoaders.scala: 151)
java.lang.ClassLoader.loadClass (ClassLoader.java: 352)
…21日更
請幫我在這個問題上。蒂雅
謝謝,現在它的工作。但是我有另一個問題,dataframe另存為一個新表中的數據,而不是將數據插入到現有表在DB。
df
.write
.format (jdbc) \
.option (“url”, jdbcUrl) \
.mode \(“覆蓋”)
.option(“數據表”,“Driver_DVCSD”) \
jdbcUsername .option(“用戶”)\
jdbcPassword .option(“密碼”).save ()
dataframe保存XML數據和表分配審計列created_date和created_by已經放棄了寫數據時從dataframe表。
把這個審計列新標準的使用.withColumn dataframe