栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Spark SQL/Hive SQL

Spark SQL/Hive SQL

文章目录
  • Spark SQL/Hive SQL与SQL的关系
  • HSQL与普通SQL的区别
  • 数据类型

Spark SQL/Hive SQL与SQL的关系

SQL:Structured Query Language,用于对关系型数据库进行操作的标准化语言。不同数据库对应不同类型的SQL。

Spark SQL/Hive SQL:Spark使用的数据存储是Hive,因此Spark SQL即Hive SQL,具有其自身的一些标准和使用方法。

HSQL与普通SQL的区别
  1. HSQL不支持等值链接,即不能省略join,如:
    SQL中内关联可以这样写: select * from a , b where a.key = b.key
    Hive中应该这样写: select * from a join b on a.key = b.key

  2. HiveQL中String类型的字段若是空(empty)字符串, 长度为0, 那么其is null的判断结果是False,使用left join可以进行筛选行

  3. HQL不支持行级别的增insert into、改update、删delete,Hive仅支持覆盖重写整个表:insert overwrite 表 (重写覆盖)

  4. HSQL支持写入分区

数据类型

除rdd外,Spark SQL提供了一种Dataframe(此处与Python中的dataframe不同,两者有不同的属性和操作)。
Dataframe是存放row对象的RDD,每个Row对象代表一行记录。
Dataframe:

  1. 使用SQL创建Dataframe
    df=spark_session.sql(‘sql’)
  2. 将rdd转化为df
    df = rdd.toDF()
  3. df创建视图(类似数据表)
    view=df.createOrReplaceTempView(‘viewName’)
  4. 将最终的查找结果(df)写入hive
    df.write.format(“hive”).mode(“append”).partitionBy(‘date’).saveAsTable(table_name)

rdd:

  1. 将df转化为rdd
    rdd1=df.rdd.repartition(200)
  2. 调用函数返回新的rdd
    rdd2=rdd1.mapPartitions(function)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/311485.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号