在 IBM Bluemix 中,我创建了一个DSX PySpark notebook
, withPython 2.6
和Spark 2.0
. 我IBM dashDB
用作我的数据存储。我可以成功验证和读取表,但是当我尝试写回新表时,我遇到了与此链接中描述的完全相同的问题。
为了解决这个问题,建议使用带有pixiedust
库的 Scala 桥注册新的自定义 dashDB JDBC 方言,但是当我在笔记本中达到该阶段时,我不断收到以下错误:
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)
这里有什么问题?