Jdbc 如何从Spark SQLContext连接到Netezza数据库
我有一个Spark实例,我正在尝试连接到现有的Netezza数据仓库应用程序来检索一些数据 使用SparkSQL的SQLContext,并根据,这可以通过read方法实现。我已经确定需要使用-jars标志来提供JDBC驱动程序,而不是像文档中那样使用SPARK_类路径。手术看起来像Jdbc 如何从Spark SQLContext连接到Netezza数据库,jdbc,apache-spark,apache-spark-sql,netezza,Jdbc,Apache Spark,Apache Spark Sql,Netezza,我有一个Spark实例,我正在尝试连接到现有的Netezza数据仓库应用程序来检索一些数据 使用SparkSQL的SQLContext,并根据,这可以通过read方法实现。我已经确定需要使用-jars标志来提供JDBC驱动程序,而不是像文档中那样使用SPARK_类路径。手术看起来像 // pyspark df = sqlContext.read.format('jdbc').options( ... ).load() // spark-shell val df = sqlContext.rea
// pyspark
df = sqlContext.read.format('jdbc').options( ... ).load()
// spark-shell
val df = sqlContext.read.format("jdbc").options( ... ).load()
我可以找到一些关于使用JDBC连接到Netezza的文档,但没有找到如何正确传递用户名和密码。我需要在这里传递哪些“选项”?在pyspark中
在火花壳中
请注意,Netezza喜欢所有大写字母。我不知道这是否有必要,但这并没有什么坏处。ALL CAPS评论中的一条注释:几乎在所有Netezza系统中都是如此。但是,有一个配置设置允许系统视图使用所有小写值。所以,如果大写不起作用,也可以尝试小写。嗨,我可以传递一个查询来代替加载整个表吗?@sriharikalicharanTummala是的,你可以。如果您包含子查询和别名,例如x,它将适用于您-例如,从id=1的表中选择*xI从Spark写入netezza时遇到问题,有时甚至不到50行:
df = sqlContext.read.format('jdbc').options(url='jdbc:netezza://server1:5480/DATABASE', \
user='KIRK', password='****', dbtable='SCHEMA.MYTABLE', \
driver='org.netezza.Driver').load()
val df = sqlContext.read.format("jdbc").options(Map(
"url" -> "jdbc:netezza://server1:5480/DATABASE",
"user" -> "KIRK",
"password" -> "****",
"dbtable" -> "SCHEMA.MYTABLE",
"driver" -> "org.netezza.Driver")).load()