データフレームに値があり、Teradataでテーブル構造を作成しました。私の要件は、Teradataにデータフレームをロードすることです。しかし、エラーが発生しています:
私は次のコードを試しました:
df.write.format("jdbc")
.option("driver","com.teradata.jdbc.TeraDriver")
.option("url","organization.td.intranet")
.option("dbtable",s"select * from td_s_zm_brainsdb.emp")
.option("user","userid")
.option("password","password")
.mode("append")
.save()
エラーが発生しました:
java.lang.NullPointerException at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:93)at org.apache.spark.sql.execution.datasources.DataSource.write(DataSource.scala :518)org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:215)で... 48が削除されました
urlオプションをjdbcurlに似たものに変更し、次のコマンドを実行しました。
df.write.format("jdbc")
.option("driver","com.teradata.jdbc.TeraDriver")
.option("url","jdbc:teradata//organization.td.intranet,CHARSET=UTF8,TMODE=ANSI,user=G01159039")
.option("dbtable",s"select * from td_s_zm_brainsdb.emp")
.option("user","userid")
.option("password","password")
.mode("append")
.save()
それでもエラーが発生します:
java.lang.NullPointerException at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:93)at org.apache.spark.sql.execution.datasources.DataSource.write(DataSource.scala :518)org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:215)で... 48が削除されました
私は次の瓶を含めました:
with --jars option
tdgssconfig-16.10.00.03.jar
terajdbc4-16.10.00.03.jar
teradata-connector-1.2.1.jar
Teradata 15Sparkバージョン2のバージョン
実際の問題を見つけました。JDBC Urlは次の形式である必要があります:-val jdbcUrl = s "jdbc:teradata:// $ {jdbcHostname} / database = $ {jdbcDatabase}、user = $ {jdbcUsername}、password = $ {jdbcPassword}"
ユーザー名とパスワードを入力しなかったため、例外が発生していました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加