sql - 如何在Apache Spark中执行SQL查询

标签 sql apache-spark

我是Apache Spark的新手。

我已经在本地Windows机器上配置了spark 2.0.2。
我已经完成了带有 Spark 的“字数统计”示例。

现在,我在执行SQL查询时遇到了问题。
我已经搜索了相同的内容,但没有得到正确的指导。

最佳答案

因此,您需要做这些事情才能完成它,

在Spark 2.0.2中,我们有SparkSession,其中包含SparkContext实例以及sqlContext实例。

因此,步骤将是:

步骤1:创建SparkSession

val spark = SparkSession.builder().appName("MyApp").master("local[*]").getOrCreate()

步骤2:在您的情况下,从数据库中加载Mysql。
val loadedData=spark
      .read
      .format("jdbc")
      .option("url", "jdbc:mysql://localhost:3306/mydatabase")
      .option("driver", "com.mysql.jdbc.Driver")
      .option("mytable", "mydatabase")
      .option("user", "root")
      .option("password", "toor")
      .load().createOrReplaceTempView("mytable")

步骤3:现在,您可以像在SqlDatabase中一样运行SqlQuery。
val dataFrame=spark.sql("Select * from mytable")
dataFrame.show()

附注:如果您使用DataFrame Api会更好,或者如果使用DataSet Api会更好,但是对于那些您需要阅读文档。

链接到文档:https://spark.apache.org/docs/2.0.0/api/scala/index.html#org.apache.spark.sql.Dataset

关于sql - 如何在Apache Spark中执行SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40841900/

相关文章:

sql - 带有 ORDER BY 的雪花 JSON 扁平化

docker - 在Docker中启动工作节点并连接到在主机OS上运行的主节点

java - 如何读取和写入多个子文件夹?

apache-spark - 如何将 Delta Lake 与 spark-shell 一起使用?

regex - 如何使用 regex_replace 替换 pyspark 数据框中列中的特殊字符

scala - 无法在 Spark 2.0 中的数据集 [(scala.Long, org.apache.spark.mllib.linalg.Vector)] 上运行 LDA

sql - R 向量转化为字符串

MySQL:选择接近名称的范围

php - php 中的多个 MySQL 查询。我试图弄清楚如何使用单选按钮在数据库中搜索多个查询

sql - postgres : find all integer columns with its current max value in it