deaftstill 2021-09-11 12:47 采纳率: 0%
浏览 101
已结题

spark从hive写入sqlserver报java.lang.NullPointerException

错误内容如下:


java.lang.NullPointerException
    at com.microsoft.jdbc.sqlserver.tds.TDSRPCParameter.initializeUserParam(Unknown Source)
    at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.addUserParametersToRPC(Unknown Source)
    at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.execute(Unknown Source)
    at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
    at com.microsoft.jdbc.base.BasePreparedStatement.executeBatchEmulation(Unknown Source)
    at com.microsoft.jdbc.base.BasePreparedStatement.executeBatch(Unknown Source)
    at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$.savePartition(JdbcUtils.scala:771)
    at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$saveTable$1.apply(JdbcUtils.scala:933)
    at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$saveTable$1.apply(JdbcUtils.scala:933)
    at org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$29.apply(RDD.scala:929)
    at org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$29.apply(RDD.scala:929)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2074)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2074)
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
    at org.apache.spark.scheduler.Task.run(Task.scala:109)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:345)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

spark写入sqlserver如下

    df.write.format("jdbc").mode(SaveMode.Append)
      .option("driver","com.microsoft.jdbc.sqlserver.SQLServerDriver")
      .option("url","jdbc:microsoft:sqlserver://<ServerName>;databaseName=xxx")
      .option("dbtable","")
      .option("user","")
      .option("password","")
      .option("batchsize","")
      .save()

驱动:
mssqlserver.jar
msbase.jar
msutil.jar

当使用spark向sqlserver2000以varchar类型插入字符串类型的数据时,为了排除不是配置信息的错误,使用同样的配置信息用int类型的数据插入没有报错,想问一下这种问题该怎么解决

  • 写回答

4条回答 默认 最新

  • wo.austin 2021-09-11 13:30
    关注

    字段长度够不够?你这个值比较长了。

    评论

报告相同问题?

问题事件

  • 系统已结题 9月19日
  • 修改了问题 9月14日
  • 修改了问题 9月14日
  • 修改了问题 9月14日
  • 展开全部

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现