在使用JDBC数据源时,如何将用户名和密码传递给Spark SQL?
我刚刚开始使用Spark SQL从H2数据库加载数据,下面是我在Spark SQL文档之后所做的工作:在使用JDBC数据源时,如何将用户名和密码传递给Spark SQL?,jdbc,apache-spark,h2,apache-spark-sql,Jdbc,Apache Spark,H2,Apache Spark Sql,我刚刚开始使用Spark SQL从H2数据库加载数据,下面是我在Spark SQL文档之后所做的工作: >>> sqlContext = SQLContext(sc) >>> df = sqlContext.load(source="jdbc",driver="org.h2.Driver", url="jdbc:h2:~/test", dbtable="RAWVECTOR") 但它不工作,并给出了错误,我认为问题是用户名和密码没有在函数中指定 这是Spark
>>> sqlContext = SQLContext(sc)
>>> df = sqlContext.load(source="jdbc",driver="org.h2.Driver", url="jdbc:h2:~/test", dbtable="RAWVECTOR")
但它不工作,并给出了错误,我认为问题是用户名和密码没有在函数中指定
这是Spark SQL 1.3.1文档中的参数:
url
要连接到的JDBC URLdbtable
应该读取的JDBC表。注意,任何
在SQL查询的FROM
子句中有效。例如
您还可以在中使用子查询,而不是完整的表
括号驱动程序
连接到此服务器所需的JDBC驱动程序的类名
网址。此类在加载到master和worker之前
运行JDBC命令以允许驱动程序向
JDBC子系统partitionColumn
,lowerBound
,upperBound
,numPartitions
如果指定了任何选项,则必须全部指定这些选项。它们描述了在并行读取多个工作表时如何对表进行分区。partitionColumn必须是相关表中的数字列谢谢。我想出来了。照办
df = sqlContext.load(
source="jdbc",driver="org.h2.Driver",
url="jdbc:h2:tcp://localhost/~/test?user=sa&password=1234",
dbtable="RAWVECTOR"
)
创建数据库时,请使用相同的模式:
conn = DriverManager.getConnection(
"jdbc:h2:tcp://localhost/~/"+dbName+"?user=sa&password=1234", null, null
);
还有,关于如何使用API。我找到了答案。只需执行>>>df=sqlContext.load(source=“jdbc”,driver=“org.h2.driver”,url=“jdbc:h2:tcp://localhost/~/test?user=sa&password=1234“,dbtable=“RAWVECTOR”),创建数据库时,使用相同的模式:conn=DriverManager.getConnection(“jdbc:h2:tcp://localhost/~/“+dbName+”?user=sa&password=1234”,null,null)//jdbc:h2:mem:db1这些链接也可能有帮助。它们包含可以通过url传递的所有属性的列表:JDBC连接属性(),如何设置JDBC连接属性()