Я пытаюсь использовать SparkSQL (v.1.3.0) для доступа к базе данных PostgreSQL. В этой базе данных у меня есть таблицаSparkSQL и UDT
CREATE TABLE test (
id bigint,
values double precision[]
);
Для доступа к таблице, я использую
val sparkConf = new SparkConf().setAppName("TestRead").setMaster("local[2]")
val sc = new SparkContext(sparkConf)
val sqlContext = new SQLContext(sc)
val jdbcDF = sqlContext.load("jdbc", Map(
"url" -> "jdbc:postgresql://...",
"dbtable" -> "schema.test",
"user" -> "...",
"password" -> "..."))
sqlContext.sql("SELECT * FROM schema.test")
Однако каждый раз, когда я пытаюсь получить доступ к таблице, содержащей этот массив я получаю java.sql.SQLException: Unsupported type 2003
.
Я нашел пример в тестовом коде Spark, который создает UDT в Spark для двумерной точки (см. ExamplePointUDT.scala). Однако я не понимаю, как я мог бы использовать этот код.
Сегодня, изучая SparkSQL UDT, я обнаружил, что он еще не является стабильным публичным API, в расчете на [список рассылки] (https://www.mail-archive.com/[email protected]/msg23986. html) и [исходная аннотация/комментарии] (https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/types/SQLUserDefinedType.java) , –
Я получаю эту ошибку даже при доступе к серверу hive2 через jbdc с искровым эффектом, например, hive.load ("jdbc", Map ( "url" -> "jdbc: hive2: // ip: port /; auth = noSasl" , "драйвер" -> "org.apache.hive.jdbc.HiveDriver", "dbtable" -> "default.weeks", "пользователь" -> "пользователь", "пароль" -> "" )) –