spark针对sqlserver_sql-server - 针对SQL Server表的spark.read读取错误(通过JDBC连接) - 堆栈内存溢出...

在Zeppelin中使用Spark尝试通过JDBC连接从SQL Server表读取数据时遇到问题。错误表明不支持类型-158,这可能是由于尝试读取包含地理类型的列导致的。代码示例展示了建立JDBC连接和尝试读取表的步骤,而错误出现在获取Catalyst类型时。
摘要由CSDN通过智能技术生成

当我尝试创建直接从SQL表读取的数据框时,Zeppelin出现问题。 问题是我不知道如何读取具有地理类型的SQL列。

这是我正在使用的代码,以及我得到的错误。

创建JDBC连接

import org.apache.spark.sql.SaveMode

import java.util.Properties

val jdbcHostname = "XX.XX.XX.XX"

val jdbcDatabase = "databasename"

val jdbcUsername = "user"

val jdbcPassword = "XXXXXXXX"

// Create the JDBC URL without passing in the user and password parameters.

val jdbcUrl = s"jdbc:sqlserver://${jdbcHostname};database=${jdbcDatabase}"

// Create a Properties() object to hold the parameters.

val connectionProperties = new Properties()

connectionProperties.put("user", s"${jdbcUsername}")

connectionProperties.put("password", s"${jdbcPassword}")

connectionProperties.setProperty("Driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")

从SQL读取

import spark.implicits._

val table = "tablename"

val postcode_polygons = spark.

read.

jdbc(jdbcUrl, table, connectionProperties)

错误

import spark.implicits._

table: String = Lookup.Postcode50m_Lookup

java.sql.SQLException: Unsupported type -158

at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$.org$apache$spark$sql$execution$datasources$jdbc$JdbcUtils$$getCatalystType(JdbcUtils.scala:233)

at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$8.apply(JdbcUtils.scala:290)

at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$8.apply(JdbcUtils.scala:290)

at scala.Option.getOrElse(Option.scala:121)

at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$.getSchema(JdbcUtils.scala:289)

at org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD$.resolveTable(JDBCRDD.scala:64)

at org.apache.spark.sql.execution.datasources.jdbc.JDBCRelation.(JDBCRelation.scala:114)

at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:52)

at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:307)

at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:178)

at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:146)

at org.apache.spark.sql.DataFrameReader.jdbc(DataFrameReader.scala:193)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值