`

Spark1.4.0-SparkSQL与Hive整合-支持窗口分析函数

 
阅读更多

      Spark1.4发布,除了重量级的SparkR,其中的SparkSQL支持了我期待已久的窗口分析函数(window functions),关于Hive中窗口分析函数的用法可参考 Hive分析函数系列 文章。
      在我们的数据平台中,90%以上的离线分析任务都是使用Hive实现,其中必然会使用很多窗口分析函数,如果SparkSQL支持窗口分析函数,
那么对于后面Hive向SparkSQL中的迁移的工作量会大大降低,因此迫不及待将Spark1.4下载试用一下。

      关于Spark1.4的安装配置,和1.3无异,安装配置步骤可参考 Spark1.3.1安装配置运行
       这里将Spark1.4 SparkSQL与Hive的整合介绍一下,也非常容易,只需几步配置即可。
       前提是你已经安装配置好Hadoop和Hive,并且可正常使用,Hive的安装配置可参考 [一起学Hive]之四-Hive的安装配置 

 

我使用的环境:
Hadoop: hadoop-2.3.0-cdh5.0.0
Hive: apache-hive-0.13.1-bin
Spark: spark-1.4.0-bin-hadoop2.3

 

SparkSQL与Hive的整合

1. 拷贝$HIVE_HOME/conf/hive-site.xml和hive-log4j.properties到 $SPARK_HOME/conf/
2. 在$SPARK_HOME/conf/目录中,修改spark-env.sh,添加
    export HIVE_HOME=/usr/local/apache-hive-0.13.1-bin
    export SPARK_CLASSPATH=$HIVE_HOME/lib/mysql-connector-java-5.1.15-bin.jar:$SPARK_CLASSPATH
3. 另外也可以设置一下Spark的log4j配置文件,使得屏幕中不打印额外的INFO信息:
     log4j.rootCategory=WARN, console

 

好了,SparkSQL与Hive的整合就这么简单,配置完后,重启Spark slave和master.

进入$SPARK_HOME/bin
执行 ./spark-sql –name “lxw1234″ –master spark://127.0.0.1:7077 进入spark-sql:

 

Sql代码  收藏代码
  1. spark-sql> show databases;  
  2. OK  
  3. default  
  4. lxw1234  
  5. usergroup_mdmp  
  6. userservice_mdmp  
  7. ut  
  8. Time taken: 0.093 seconds, Fetched 5 row(s)  
  9. spark-sql> use lxw1234;  
  10. OK  
  11. Time taken: 0.074 seconds  
  12. spark-sql> select * from t_lxw1234;  
  13. 2015-05-10 url1  
  14. 2015-05-10 url2  
  15. 2015-06-14 url1  
  16. 2015-06-14 url2  
  17. 2015-06-15 url1  
  18. 2015-06-15 url2  
  19. Time taken: 0.33 seconds, Fetched 6 row(s)  
  20. spark-sql> desc t_lxw1234;  
  21. day string NULL  
  22. url string NULL  
  23. Time taken: 0.113 seconds, Fetched 2 row(s)  
  24. //ROW_NUMBER()  
  25. spark-sql> select url,day,row_number() over(partition by url order by dayas rn from t_lxw1234;  
  26. url1 2015-05-10 1  
  27. url1 2015-06-14 2  
  28. url1 2015-06-15 3  
  29. url2 2015-05-10 1  
  30. url2 2015-06-14 2  
  31. url2 2015-06-15 3  
  32. Time taken: 1.114 seconds, Fetched 6 row(s)  
  33. //COUNT()  
  34. spark-sql> select url,day,count(1) over(partition by url order by dayas rn from t_lxw1234;  
  35. url1 2015-05-10 1  
  36. url1 2015-06-14 2  
  37. url1 2015-06-15 3  
  38. url2 2015-05-10 1  
  39. url2 2015-06-14 2  
  40. url2 2015-06-15 3  
  41. Time taken: 0.934 seconds, Fetched 6 row(s)  
  42. //LAG()  
  43. spark-sql> select url,day,lag(day) over(partition by url order by dayas rn from t_lxw1234;  
  44. url1 2015-05-10 NULL  
  45. url1 2015-06-14 2015-05-10  
  46. url1 2015-06-15 2015-06-14  
  47. url2 2015-05-10 NULL  
  48. url2 2015-06-14 2015-05-10  
  49. url2 2015-06-15 2015-06-14  
  50. Time taken: 0.897 seconds, Fetched 6 row(s)  
  51. spark-sql>   

 

没问题,果然都支持了。

分享到:
评论

相关推荐

    spark-1.4.0-bin-hadoop1.tgz

    这个特定的压缩包“spark-1.4.0-bin-hadoop1.tgz”包含了Spark 1.4.0版本,并预编译了针对Hadoop 1的依赖,这意味着它可以直接在运行Hadoop 1的集群上使用。 Hadoop是Apache另一个关键项目,是一个分布式文件系统...

    hadoop-3.1.1.3.1.4.0-315.tar.gz

    ambari-2.7.5 编译过程中四个大包下载很慢,所以需要提前下载,包含:hbase-2.0.2.3.1.4.0-315-bin.tar.gz ,hadoop-3.1.1.3.1.4.0-315.tar.gz , grafana-6.4.2.linux-amd64.tar.gz ,phoenix-5.0.0.3.1.4.0-315....

    hbase-2.0.2.3.1.4.0-315-bin.tar.gz

    ambari-2.7.5 编译过程中四个大包下载很慢,所以需要提前下载,包含:hbase-2.0.2.3.1.4.0-315-bin.tar.gz ,hadoop-3.1.1.3.1.4.0-315.tar.gz , grafana-6.4.2.linux-amd64.tar.gz ,phoenix-5.0.0.3.1.4.0-315....

    gnustep-devel-1.4.0-setup.exe

    gnustep-devel-1.4.0-setup.exe

    jsPlumb-1.4.0-all

    jquery.jsPlumb-1.4.0-all.js

    spark-1.4.0-src

    在"spark-1.4.0-src"中,我们可以看到以下几个主要的模块: 1. **Core Spark**:这是Spark的基础框架,包含了RDD的概念和实现,以及任务调度、内存管理、故障恢复和网络通信等核心功能。开发者可以在这个模块中研究...

    phoenix-5.0.0.3.1.4.0-315.tar.gz

    ambari-2.7.5 编译过程中四个大包下载很慢,所以需要提前下载,包含:hbase-2.0.2.3.1.4.0-315-bin.tar.gz ,hadoop-3.1.1.3.1.4.0-315.tar.gz , grafana-6.4.2.linux-amd64.tar.gz ,phoenix-5.0.0.3.1.4.0-315....

    argparse-1.4.0-py2.py3-none-any.whl

    argparse-1.4.0-py2.py3-none-any.whl

    libpcap-devel-1.4.0-4.20130826git2dbcaa1.el6.x86_64.rpm

    libpcap-devel-1.4.0-4.20130826git2dbcaa1.el6.x86_64.rpm

    torch-1.4.0-cp36-cp36m-linux_aarch64.whl

    arm架构, python3.6 torch-1.4.0-cp36-cp36m-linux_aarch64.whl

    zstd-jni-1.4.0-1.zip

    标题中的"zstd-jni-1.4.0-1.zip"表明这是一个关于Zstandard (Zstd)的Java Native Interface (JNI)库的压缩包,版本号为1.4.0,可能包含了一些修复和改进。这个库允许Java应用程序利用Zstd的高效压缩和解压缩算法,而...

    mysqlclient-1.4.0-cp37-cp37m-win-amd64.whl下载

    mysqlclient-1.4.0-cp37-cp37m-win_amd64.whl下载 mysqlclient-1.4.0-cp37-cp37m-win_amd64.whl下载 mysqlclient-1.4.0-cp37-cp37m-win_amd64.whl下载 mysqlclient-1.4.0-cp37-cp37m-win_amd64.whl下载 mysqlclient-...

    robo3t-1.4.0-windows-x86_64-12e54cc.exe.zip

    在本次更新的版本"robo3t-1.4.0-windows-x86_64-12e54cc.exe.zip"中,Robo 3T引入了对MongoDB 4.2版本的支持。MongoDB 4.2是MongoDB的一个重要版本,带来了诸多新特性和优化。其中,最引人注目的是引入了ACID(原子...

    shiro-core-1.4.0-API文档-中文版.zip

    赠送原API文档:shiro-core-1.4.0-javadoc.jar; 赠送源代码:shiro-core-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-core-1.4.0.pom; 包含翻译后的API文档:shiro-core-1.4.0-javadoc-API文档-中文(简体)...

    HPool-Miner-chia-v1.4.0-2-linux.zip

    HPool-Miner-chia-v1.4.0-2-linux.zip

    typed_ast-1.4.0-cp36-cp36m-win_amd64.whl

    Twisted-typed_ast-1.4.0-cp36-cp36m-win_amd64 Twisted-typed_ast-1.4.0-cp36-cp36m-win_amd64

    zerotier_aarch64-6.1_1.4.0-0.spk

    猫盘群晖可用的zerotier,应用中心手动安装

    jai-imageio-core-1.4.0-API文档-中文版.zip

    赠送原API文档:jai-imageio-core-1.4.0-javadoc.jar; 赠送源代码:jai-imageio-core-1.4.0-sources.jar; 赠送Maven依赖信息文件:jai-imageio-core-1.4.0.pom; 包含翻译后的API文档:jai-imageio-core-1.4.0-...

    HPool-Miner-chia-v1.4.0-2-macos.zip

    HPool-Miner-chia-v1.4.0-2-macos.zip

Global site tag (gtag.js) - Google Analytics