在IBM Bluemix中,我使用Python 2.6和Spark 2.0创建了一个DSX PySpark notebook。我使用IBM dashDB作为我的数据存储。我可以成功地对表进行身份验证和读取表,但是当我尝试写回一个新表时,我遇到了与此link中描述的完全相同的问题。
为了解决这个问题,使用Scala桥在pixiedust库中注册一个新的自定义Scala JDBC方言是suggested的事,但是当我在Notebook中达到这个阶段时,我一直收到以下错误:
pixiedustRunner.scala:13: error: type BeanProperty is not a member of package reflect
@scala.reflect.BeanProperty来自第二个链接的PySpark中的scala桥代码:
%%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)这里的问题是什么?
发布于 2017-01-22 15:11:49
仅供参考。我们还在使用dashDB的JDBC方言修复程序直接更新DSX,这样您就不必再将其作为笔记本的一部分。解决办法很快就会出炉。所以敬请关注。
https://stackoverflow.com/questions/41767151
复制相似问题