【发布时间】:2017-01-20 15:30:06
【问题描述】:
在 IBM Bluemix 中,我创建了一个 DSX PySpark notebook,带有 Python 2.6 和 Spark 2.0。我使用IBM dashDB 作为我的数据存储。我可以成功验证和读取表,但是当我尝试写回新表时,我遇到了与link 中描述的完全相同的问题。
要解决这个问题,suggested 使用带有 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)
这里有什么问题?
【问题讨论】:
标签: pyspark ibm-cloud dashdb pixiedust