impala+hdfs+parquet格式文件
[创建目录]
hdfs dfs -mkdir -p /user/hdfs/sample_data/parquet
[赋予权限]
sudo -u hdfs hadoop fs -chown -R impala:supergroup /user/hdfs/sample_data
[删除目录]
hdfs dfs -rm -r /user/hdfs/sample_data/parquet
[上传文件]
hdfs dfs -put -f device /user/hdfs/sample_data/parquet
hdfs dfs -put -f metrics /user/hdfs/sample_data/parquet
[查看文件]
hdfs dfs -ls /user/hdfs/sample_data/parquet
[impala建表,不带分区](创建表之后,还需要通过下面的alter语句添加分区)
DROP TABLE IF EXISTS device_parquet;
CREATE EXTERNAL TABLE device_parquet
(
deviceId STRING,
deviceName STRING,
orgId STRING
)
STORED AS PARQUET
LOCATION '/user/hdfs/sample_data/parquet/device';
[impala建表,带分区]
DROP TABLE IF EXISTS metrics_parquet;
CREATE EXTERNAL TABLE metrics_parquet
(
deviceId STRING,
reading BIGINT,
time STRING
)
partitioned by (year string)
STORED AS PARQUET
LOCATION '/user/hdfs/sample_data/parquet/metrics';
[添加表分区]
alter table metrics_parquet add partition (year="2017");
alter table metrics_parquet add partition (year="2018");
[删除分区]
alter table metrics_parquet drop partition (year="2017");
alter table metrics_parquet drop partition (year="2018");
[查看表分区]
show partitions metrics_parquet;
[不指定分区查询数据]
select
T_3C75F1.`deviceId`,
year(T_3C75F1.`time`),
month(T_3C75F1.`time`),
sum(T_3C75F1.`reading`),
count(1)
from (select device_parquet.deviceId,reading,metrics_parquet.time as time from device_parquet,metrics_parquet where device_parquet.deviceId=metrics_parquet.deviceId) as `T_3C75F1`
group by
T_3C75F1.`deviceId`,
year(T_3C75F1.`time`),
month(T_3C75F1.`time`);
耗时:device表50条,metrics表1亿条(261M)执行上面的查询语句,耗时平均135秒
[指定分区查询数据]
select
T_3C75F1.`deviceId`,
year(T_3C75F1.`time`),
month(T_3C75F1.`time`),
sum(T_3C75F1.`reading`),
count(1)
from (select device_parquet.deviceId,reading,metrics_parquet.time as time from device_parquet,metrics_parquet where device_parquet.deviceId=metrics_parquet.deviceId and year='2017') as `T_3C75F1`
group by
T_3C75F1.`deviceId`,
year(T_3C75F1.`time`),
month(T_3C75F1.`time`);
耗时:device表50条,metrics表1亿条(261M)执行上面的查询语句,耗时平均96秒
[查询多个分区的数据]
select
T_3C75F1.`deviceId`,
year(T_3C75F1.`time`),
month(T_3C75F1.`time`),
sum(T_3C75F1.`reading`),
count(1)
from (select device_parquet.deviceId,reading,metrics_parquet.time as time from device_parquet,metrics_parquet where device_parquet.deviceId=metrics_parquet.deviceId and year in ('2017','2018')) as `T_3C75F1`
group by
T_3C75F1.`deviceId`,
year(T_3C75F1.`time`),
month(T_3C75F1.`time`);
[刷新数据](hdfs中数据发生变化时,需要执行以下命令更新impala)
refresh device_parquet;
refresh metrics_parquet;
impala+hdfs+parquet格式文件的更多相关文章
- impala+hdfs+csv格式文件
[创建目录]hdfs dfs -mkdir -p /user/hdfs/sample_data/csv/devicehdfs dfs -mkdir -p /user/hdfs/sample_data/ ...
- Parquet 格式文件
Apache Parquet是Hadoop生态圈中一种新型列式存储格式,它可以兼容Hadoop生态圈中大多数计算框架(Hadoop.Spark等),被多种查询引擎支持(Hive.Impala.Dril ...
- Flink生成Parquet格式文件实战
1.概述 在流数据应用场景中,往往会通过Flink消费Kafka中的数据,然后将这些数据进行结构化到HDFS上,再通过Hive加载这些文件供后续业务分析.今天笔者为大家分析如何使用Flink消费Kaf ...
- Parquet 格式文件,查看Schema
需要社区工具:parquet-tools-1.6.0rc3-SNAPSHOT.jar git project: https://github.com/apache/p ...
- Hive 导入 parquet 格式数据
Hive 导入 parquet 数据步骤如下: 查看 parquet 文件的格式 构造建表语句 倒入数据 一.查看 parquet 内容和结构 下载地址 社区工具 GitHub 地址 命令 查看结构: ...
- Hive 导入 parquet 格式数据(未完,待续)
Hive 导入 parquet 格式数据 Parquet 格式文件,查看Schema Parquet 之mapreduce Hive 导入 parquet 格式数据
- java 读写Parquet格式的数据 Parquet example
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOExce ...
- 大数据学习day25------spark08-----1. 读取数据库的形式创建DataFrame 2. Parquet格式的数据源 3. Orc格式的数据源 4.spark_sql整合hive 5.在IDEA中编写spark程序(用来操作hive) 6. SQL风格和DSL风格以及RDD的形式计算连续登陆三天的用户
1. 读取数据库的形式创建DataFrame DataFrameFromJDBC object DataFrameFromJDBC { def main(args: Array[String]): U ...
- 大数据【二】HDFS部署及文件读写(包含eclipse hadoop配置)
一 原理阐述 1' DFS 分布式文件系统(即DFS,Distributed File System),指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连.该系统架构 ...
随机推荐
- Hadoop端口一览表
Hadoop端口一览表 @(Hadoop) 端口名 用途 50070 Hadoop Namenode UI端口 50075 Hadoop Datanode UI端口 50090 Hadoop Seco ...
- animateBackground-plugin
(function ($) { if (!document.defaultView || !document.defaultView.getComputedStyle) { var oldCurCSS ...
- 如何在 MyEclipse 下用 Gradle 构建 Web Application
一.安装 Gradle 插件,参考我的另一篇文章:MyEclipse 集成 Gradle开发环境 二.新建一个 Web Project, 在项目根目录下新建 build.gradle 文件, 并向其中 ...
- vue - v-text 和 v-html
1.官方有了{{data}}绑定数据了,为啥还要v-text 因为网络问题,可以我们会卡到看“{{}}”,很尴尬吧!!! => 因此推荐用v-text 2. v-html是啥? 能吃吗 , v- ...
- 【转】Socket状态变迁图
转自:http://www.cnblogs.com/ILove/archive/2008/12/08/1350430.html 服务端,端口的状态变化 先在本机(IP地址为:192.168.1.1 ...
- Codeforces 385 C Bear and Prime Numbers
题目链接~~> 做题感悟:这题属于想法题,比赛时直接做的 D 题.可是处理坐标处理的头晕眼花的结果到最后也没AC. 解题思路: 由于查询的时候仅仅考虑素数,so~我们仅仅考虑素数就能够,这就须要 ...
- 算法笔记_116:算法集训之代码填空题集三(Java)
目录 1 数组转置 2 文件管理 3 显示为树形 4 杨辉三角系数 5 圆周率与级数 6 整数翻转 7 自行车行程 8 祖冲之割圆法 9 最大5个数 10 最大镜像子串 1 数组转置 编写程序将 ...
- 使用Loadrunner进行文件的上传和下载
最近使用loadrunner中需要录制文件的上传和下载,上传功能模块利用录制可以直接实现,下载无法实现,在网上找到了一段代码,自己动手试验了下,发现没有用 辛苦找到的,还是记录下吧 (1)LoadRu ...
- selenium-Navigating
The first thing you’ll want to do with WebDriver is navigate to a link. The normal way to do this is ...
- JDBC:数据库操作:BLOB数据处理
CLOB主要保存海量文字,而BLOB是专门保存二进制数据:包括,图片,音乐,影片.等. 在MYSQL中,BLOB类型使用LONGBLOB声明,最高可存储4G内容. 创建一个表: create tabl ...