首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数据帧内容传递到sql存储过程

将数据帧内容传递到sql存储过程
EN

Stack Overflow用户
提问于 2017-08-06 18:28:00
回答 1查看 966关注 0票数 1

我尝试将dataframe中的内容传递到我的sql存储过程中。我使用map函数遍历dataframe内容并将它们发送到db中。我在尝试这样做的时候出错了。

对于任何字段(类:"java.lang.Object",名称:"_1") -根类:"scala.Tuple2“,我收到一个名为No Encoder found的错误

有人能帮我改正这个错误吗?

下面是我的代码

代码语言:javascript
复制
 val savedDataFrame = dataFrame.map(m => sendDataFrameToDB(m.get(0), m.get(1), m.get(2), m.get(3)))
   savedDataFrame.collect()

 def sendDataFrameToDB(firstName : String, lastName : String, address : String, age : Long) = {
var jdbcConnection: java.sql.Connection = null

try {
  val jdbcTemplate = new JDBCTemplate()
  jdbcTemplate.getConfiguration()
  jdbcConnection = jdbcTemplate.getConnection

  if (jdbcConnection != null) {
    val statement = "{call insert_user_details (?,?,?,?)}"

    val callableStatement = jdbcConnection.prepareCall(statement)

    callableStatement.setString(1, firstName)
    callableStatement.setString(2, lastName)
    callableStatement.setString(3, address)

    callableStatement.setLong(4, age)

    callableStatement.executeUpdate
  }
} catch {
  case e: SQLException => logger.error(e.getMessage)
} 
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-08 14:45:41

passing Dataframe contents into sql stored procedure

dataFrame.map(m => sendDataFrameRDBMS(f.getAs("firstname").toString,f.getAs(“dataFrame.map”).toString,f.getAs("address").toString,f.getAs(“age”).toString.toLong)

m.get(0)属于Any类型,根据您的示例,它不能直接传递给String类型的firstName。数据帧不同于RDD。"DataFrame是一个组织成命名列的数据集。它在概念上等同于关系数据库中的表或R/Python语言中的数据框架,但在幕后进行了更丰富的优化“link

当您创建数据帧时,会生成如下列

代码语言:javascript
复制
val dataFrame = dataSet.toDF("firstname", "lastName", "address", "age")

然后,您可以访问dataframe中的元素,如下所示,并将其传递到您的方法中

代码语言:javascript
复制
dataFrame.map(m => sendDataFrameRDBMS(f.getAs("firstname").toString, f.getAs("lastname").toString, f.getAs("address").toString, f.getAs("age").toString.toLong))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45531044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档