Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用JDBC数据源时,如何将用户名和密码传递给Spark SQL?_Jdbc_Apache Spark_H2_Apache Spark Sql - Fatal编程技术网

在使用JDBC数据源时,如何将用户名和密码传递给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

我刚刚开始使用Spark SQL从H2数据库加载数据,下面是我在Spark SQL文档之后所做的工作:

>>> 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 URL

  • dbtable
    应该读取的JDBC表。注意,任何 在SQL查询的
    FROM
    子句中有效。例如 您还可以在中使用子查询,而不是完整的表 括号

  • 驱动程序
    连接到此服务器所需的JDBC驱动程序的类名 网址。此类在加载到master和worker之前 运行JDBC命令以允许驱动程序向 JDBC子系统

  • partitionColumn
    lowerBound
    upperBound
    numPartitions

    如果指定了任何选项,则必须全部指定这些选项。它们描述了在并行读取多个工作表时如何对表进行分区。partitionColumn必须是相关表中的数字列

  • 但是我没有找到任何关于如何将数据库用户名和密码传递给sqlContext.load函数的线索。 有没有人有类似的案例或线索


    谢谢。

    我想出来了。照办

    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连接属性()