В IBM Bluemix я создал DSX PySpark notebook
, с Python 2.6
и Spark 2.0
. Я использую IBM dashDB
в качестве хранилища данных. Я могу успешно аутентифицировать и читать таблицы, но когда я пытаюсь записать обратно в новую таблицу, я получаю эту ту же проблему, как описано в этом link.DSX PySpark записывает данные в dashDB с пользовательским диалектом JDBC
Чтобы исправить это, было suggested зарегистрировать новый пользовательский dashDB JDBC диалекте с использованием моста Scala с pixiedust
библиотеки, но когда я достигаю этой стадии в моей тетради я получаю следующее сообщение об ошибке:
pixiedustRunner.scala:13: error: type BeanProperty is not a member of package reflect
@scala.reflect.BeanProperty
Код моста scala в PySpark со 2-го звена:
%%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)
В чем проблема?