DSX PySpark使用自定义JDBC方言将数据写入dashDB
在IBM Bluemix中,我用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
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,以便您不再需要将其作为笔记本的一部分。修复程序很快就会发布。所以请继续关注