gpt4 book ai didi

apache-spark - 如何通过 Spark SQL 作为 JDBC 分布式查询引擎访问 RDD 表?

转载 作者:行者123 更新时间:2023-12-03 07:07:40 27 4
gpt4 key购买 nike

stackoverflow 上的几个帖子都有回复,其中包含有关如何通过 Spark SQL 作为 JDBC 分布式查询引擎访问 RDD 表的部分信息。因此,我想询问以下问题,以获取有关如何执行此操作的完整信息:

  1. 在Spark SQL应用中,我们需要使用HiveContext来注册表吗?或者我们可以只使用 SQL 上下文吗?

  2. 我们在哪里以及如何使用 HiveThriftServer2.startWithContext?

  3. 当我们运行 start-thriftserver.sh 时,如

/opt/mapr/spark/spark-1.3.1/sbin/start-thriftserver.sh --master spark://spark-master:7077 --hiveconf hive.server2.thrift.bind.host spark-master --hiveconf hive.server2.trift.port 10001

除了指定Spark SQL应用程序的jar和主类之外,我们还需要指定其他参数吗?

  • 我们还需要做其他事情吗?
  • 谢谢。

    最佳答案

    要通过 HiveThriftServer2.startWithContext() 公开 DataFrame 临时表,您可能需要编写并运行一个简单的应用程序,可能不需要运行 start-thriftserver.sh .

    对于您的问题:

      需要
    1. HiveContext;在 Spark-Shell 中隐式转换为 HiveContextsqlContext

    2. 编写一个简单的应用程序,例如:

        import  org.apache.spark.sql.hive.thriftserver._      val  hiveContext  =  new  HiveContext(sparkContext)    hiveContext.parquetFile(path).registerTempTable("my_table1")      HiveThriftServer2.startWithContext(hiveContext)
  • 无需运行start-thriftserver.sh,而是运行您自己的应用程序,例如:
  • spark-submit --class com.xxx.MyJdbcApp ./package_with_my_app.jar

  • 服务器端没有其他内容,应该在默认端口 10000 上启动;您可以通过beeline连接服务器进行验证。
  • 关于apache-spark - 如何通过 Spark SQL 作为 JDBC 分布式查询引擎访问 RDD 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31493026/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com