我想使用带有pySpark的SQL语句进行连接并从DB2中读取信息。我在互联网上找到的唯一代码会读取整个表格,如下所示:
user = <username>
password = <password>
jdbcURL = "jdbc:db2://xx.xx.xxx.xxx:50000/Database"
prop = {"user":user, "password":password, "driver":"com.ibm.db2.jcc.DB2Driver", "sslConnection":"false"}
table = <schema.table>
df = sqlContext.read.jdbc(url=jdbcURL,table=table,properties=prop)
df.count()
我想使用
这样的SQL语句进行阅读 'select * from table limit 100'
能请你帮忙吗?
答案 0 :(得分:2)
您可以像下面在Pyspark
中那样从任何JDBC
来源中进行阅读
df = sqlContext.read.format('jdbc').option('url', '{}:{}/{}'.format(domain, port, dbname)).option('driver', 'com.mysql.jdbc.Driver').option('dbtable', '(select * from `{}`) as `{}`'.format(table, table)).option('user', username).option('password', password).load()
希望这会有所帮助
答案 1 :(得分:1)
根据@ User12345的回复,操作方法是
df = (sqlContext.read.format('jdbc') .option('url',
'jdbc:db2://xx.xx.xxx.xxx:50000/myDatabase') .option('driver',
'com.ibm.db2.jcc.DB2Driver') .option('dbtable', "(SELECT * FROM mySchema.myTable
limit 100) as t") .option('user', user).option('password', password).load())
df.count()