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

DSX PySpark使用自定义JDBC方言将数据写入dashDB,pyspark,ibm-cloud,dashdb,pixiedust,Pyspark,Ibm Cloud,Dashdb,Pixiedust,在IBM Bluemix中,我用Python2.6和Spark 2.0创建了一个DSX PySpark笔记本。我正在使用ibmdashdb作为我的数据存储。我可以成功地进行身份验证和读取表,但当我尝试写回一个新表时,我遇到了与本文中描述的完全相同的问题 要解决这个问题,需要使用Scala桥在pixiedust库中注册一个新的自定义dashDB JDBC方言,但是当我在笔记本中达到这个阶段时,我不断收到以下错误: pixiedustRunner.scala:13: error: type Bean

在IBM Bluemix中,我用
Python2.6
Spark 2.0
创建了一个
DSX PySpark笔记本。我正在使用
ibmdashdb
作为我的数据存储。我可以成功地进行身份验证和读取表,但当我尝试写回一个新表时,我遇到了与本文中描述的完全相同的问题

要解决这个问题,需要使用Scala桥在
pixiedust
库中注册一个新的自定义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)

这里的问题是什么?

这是PixieDust中的一个已知问题,因为BeanProperty的api更改已从scala 2.10中的scala.reflect包迁移到scala 2.11中的scala.beans包。
不久将提供修复程序,但在此期间,您可以通过使用使用Scala 2.10的Spark 1.6来解决此错误。

这是PixieDust中的一个已知问题,因为BeanProperty的api更改已从Scala 2.10中的Scala.reflect包移动到Scala 2.11中的Scala.beans包。
不久将提供修复程序,但在此期间,您可以使用Spark 1.6解决此错误,Spark 1.6使用Scala 2.10。

FYI。我们还正在使用JDBC方言修复程序直接更新DSX,以便您不再需要将其作为笔记本的一部分。修复程序很快就会发布。请继续关注。

仅供参考。我们还正在使用JDBC方言修复程序直接更新DSX,以便您不再需要将其作为笔记本的一部分。修复程序很快就会发布。所以请继续关注