一、获得最初的数据并形成dataframe

val ny= sc.textFile("data/new_york/")
val header=ny.first
val filterNY =ny.filter(listing=>{
listing.split(",").size==14 && listing!=header
})
val nyMap= filterNY.map(listing=>{
val listingInfo=listing.split(",")
(listingInfo(0).toInt,listingInfo(2),listingInfo(9).toFloat,listingInfo(4))

})
nyMap.take(20).foreach(println)

val nyDF=nyMap.toDF("Room_ID","Room_Type","Price","Neighborhood")

nyDF.show

二、注册成临时表

nyDF.registerTempTable("listings")

//如果不成功可以执行

cp /etc/hive/conf/hive-site.xml /etc/spark/conf

三、通过hql对临时表做select,聚集函数,group by,sort  by  where等等操作

spark.sqlContext.sql("select * from listings limit 10").show

执行sql以后的结果也是dataframe,所以可以用show这些操作

scala> spark.sqlContext.sql("select Neighborhood,count(Price) as sump ,round(avg(Price),2) as avgp from listings where Room_Type!='' group by Neighborhood order by sump desc" ).show
+------------------+-----+------+
| Neighborhood| sump| avgp|
+------------------+-----+------+
| Williamsburg|77973|148.53|
|Bedford-Stuyvesant|54667|108.34|
| Harlem|50551|122.45|
| East Village|43979|196.45|
| Upper West Side|42466| 215.9|
| Bushwick|37670| 87.97|
| Upper East Side|36950|205.24|
| Hell's Kitchen|34202|217.42|
| Crown Heights|28033|106.34|
| Chelsea|25551|258.95|
| Lower East Side|22982|184.73|
| Midtown|22746|286.51|
| East Harlem|22393|133.19|
| Greenpoint|21167|144.98|
| West Village|20370|285.79|
|Washington Heights|18276| 99.08|
| Astoria|15586|110.39|
| Clinton Hill|12244|191.38|
| Flatbush|11430| 96.74|
| Park Slope|11294|173.55|
+------------------+-----+------+
only showing top 20 rows

这些都是hql的基础sql语法,不需要过多的讲解了

大数据入门到精通12--spark dataframe 注册成hive 的临时表的更多相关文章

  1. 大数据入门到精通11-spark dataframe 基础操作

    // dataframe is the topic 一.获得基础数据.先通过rdd的方式获得数据 val ny= sc.textFile("data/new_york/")val ...

  2. 大数据入门到精通18--sqoop 导入关系库到hdfs中和hive表中

    一,选择数据库,这里使用标准mysql sakila数据库 mysql -u root -D sakila -p 二.首先尝试把表中的数据导入到hdfs文件中,这样后续就可以使用spark来dataf ...

  3. 大数据入门到精通2--spark rdd 获得数据的三种方法

    通过hdfs或者spark用户登录操作系统,执行spark-shell spark-shell 也可以带参数,这样就覆盖了默认得参数 spark-shell --master yarn --num-e ...

  4. 大数据入门到精通13--为后续和MySQL数据库准备

    We will be using the sakila database extensively inside the rest of the course and it would be great ...

  5. 大数据入门到精通8-spark RDD 复合key 和复合value 的map reduce操作

    一.做基础数据准备 这次使用fights得数据. scala> val flights= sc.textFile("/user/hdfs/data/Flights/flights.cs ...

  6. 大数据入门到精通5--spark 的 RDD 的 reduce方法使用

    培训系列5--spark 的 RDD 的 reduce方法使用 1.spark-shell环境下准备数据 val collegesRdd= sc.textFile("/user/hdfs/C ...

  7. 大数据入门到精通4--spark的rdd的map使用方式

    学习了之前的rdd的filter以后,这次来讲spark的map方式 1.获得文件 val collegesRdd= sc.textFile("/user/hdfs/CollegeNavig ...

  8. 大数据入门到精通1--大数据环境下的基础文件HDFS 操作

    1.使用hdfs用户或者hadoop用户登录 2.在linux shell下执行命令 hadoop fs -put '本地文件名' hadoop fs - put '/home/hdfs/sample ...

  9. 大数据入门到精通19--mysql 数据导入到hive数据中

    一.正常按照数据库和表导入 \\前面介绍了通过底层文件得形式导入到hive的表中,或者直接导入到hdfs中,\\现在介绍通过hive的database和table命令来从上层操作.sqoop impo ...

随机推荐

  1. InstallShield-常用prq文件的下载地址

    VC 2010 redist X86: http://saturn.installshield.com/is/prerequisites/microsoft visual c++ 2010 redis ...

  2. easyui datagrid去掉全选按钮

    第一步: F12查看元素,选中全选按钮,把全选按钮的class里边加上display:none属性.找到对应的class,即.datagrid-header-check. 第二步: 在加载 表格的时候 ...

  3. jmeter4.0安装记录

    前提:jmeter需配置环境变量jdk,jmeter4.0版本需1.7以上版本, 查看jdk版本命令java -version 1.官网http://jmeter.apache.org/downloa ...

  4. yii2 获取模块名、控制器名、方法名

    在视图中: 模块名  $this->context->module->id控制器名 $this->context->id方法名 $this->context-> ...

  5. layui选项卡-内容为echarts图显示不全的问题

    var width = $("威胁类型ID").width();var height = $("威胁类型ID").height(); $("#威胁来源 ...

  6. C++学习(三十九)(C语言部分)之 游戏项目(2048游戏)

    /***************************项目 2048**********************c语言编写 图形库制作时间:2019.04.03 准备工具: vs2013 图形库 i ...

  7. s2第六章继承和多态

    public class Employee { //年龄 public int Age { get; set; } //性别 public Gender Gender { get; set; } // ...

  8. GanttProject 项目管理软件的优点

    GanttProject 的优点 GanttProject 是一款基于 GPL 协议的开源软件,代码完全开源,使用的是 Java 语言编写. 最近在试用,有以下一些优大. 文件格式为 xml,这个是我 ...

  9. Mysql组复制之单主模式(一)

    环境 系统:CentOS release 6.9 (Final) Mysql:5.7 机器: S1 10.0.0.7 lemon S2 10.0.0.8 lemon2 S3 10.0.0.9 lemo ...

  10. [C#]typeof,Gettype()和is的区别

    typeof 参数是一个类型名称,比如你自己编写的一个类 GetType()是类的方法,继承自object,返回该实例的类型 is 用来检测实例的兼容性(是否可以相互转换) 例: class Anim ...