首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DSX PySpark使用自定义JDBC方言将数据写入dashDB

DSX PySpark使用自定义JDBC方言将数据写入dashDB
EN

Stack Overflow用户
提问于 2017-01-20 23:30:07
回答 2查看 415关注 0票数 0

在IBM Bluemix中,我使用Python 2.6Spark 2.0创建了一个DSX PySpark notebook。我使用IBM dashDB作为我的数据存储。我可以成功地对表进行身份验证和读取表,但是当我尝试写回一个新表时,我遇到了与此link中描述的完全相同的问题。

为了解决这个问题,使用Scala桥在pixiedust库中注册一个新的自定义Scala JDBC方言是suggested的事,但是当我在Notebook中达到这个阶段时,我一直收到以下错误:

代码语言:javascript
运行
复制
pixiedustRunner.scala:13: error: type BeanProperty is not a member of package reflect
    @scala.reflect.BeanProperty

来自第二个链接的PySpark中的scala桥代码:

代码语言:javascript
运行
复制
%%scala cl=dialect global=true
import org.apache.spark.sql.jdbc._
import org.apache.spark.sql.types.{StringType, BooleanType, DataType}

object dashDBCustomDialect extends JdbcDialect {
    override def canHandle(url: String): Boolean = url.startsWith("jdbc:db2")
    override def getJDBCType(dt: DataType): Option[JdbcType] = dt match {
            case StringType => Option(JdbcType("VARCHAR(" + maxStringColumnLength + ")", java.sql.Types.VARCHAR))
            case BooleanType => Option(JdbcType("CHAR(1)", java.sql.Types.CHAR))
            case _ => None
    }
}
JdbcDialects.registerDialect(dashDBCustomDialect)

这里的问题是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-20 23:59:24

这是PixieDust中的一个已知问题,原因是BeanProperty的应用程序接口发生了变化,从Scala2.10中的scala.reflect包迁移到了Scala2.11中的scala.beans包。很快就会提供一个修复,但是在此期间,你可以通过使用Scala 2.10的Spark 1.6来解决这个错误。

票数 2
EN

Stack Overflow用户

发布于 2017-01-22 15:11:49

仅供参考。我们还在使用dashDB的JDBC方言修复程序直接更新DSX,这样您就不必再将其作为笔记本的一部分。解决办法很快就会出炉。所以敬请关注。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41767151

复制
相关文章

相似问题

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