自己写的一个简单例子,用来做话题描述去重,表中的desc字段 “a-b-a-b-b-c”需要去重
python代码如下:
#!/usr/bin/python
import sys
reload(sys)
sys.setdefaultencoding('utf8')
def quchong(desc):
a=desc.split('-')
return '-'.join(set(a))
while True:
line = sys.stdin.readline()
if line == "":
break
line = line.rstrip('\n')
# your process code here
parts = line.split('\t')
parts[2]=quchong(parts[2])
print "\t".join(parts)
下面是转载过来的,比较详细
二、hive map中字段自增的写法(转)
分类: hadoop 2010-09-03 16:01 99人阅读 评论(0) 收藏 举报
1、建立表结构
hive> CREATE TABLE t3 (foo STRING, bar MAP<STRING,INT>)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY '/t'
> COLLECTION ITEMS TERMINATED BY ','
> MAP KEYS TERMINATED BY ':'
> STORED AS TEXTFILE;
OK
2、建成的效果
hive> describe t3;
OK
foo string
bar map<string,int>
3、生成test.txt
jeffgeng click:13,uid:15
4、把test.txt load进来
hive> LOAD DATA LOCAL INPATH 'test.txt' OVERWRITE INTO TABLE t3;
Copying data from file:/root/src/hadoop/hadoop-0.20.2/contrib/hive-0.5.0-bin/bin/test.txt
Loading data to table t3
OK
load完效果如下
hive> select * from t3;
OK
jeffgeng {"click":13,"uid":15}
5、可以这样查map的值
hive> select bar['click'] from t3;
...一系列的mapreduce...
OK
13
6、编写add_mapper
#!/usr/bin/python
import sys
import datetime
for line in sys.stdin:
line = line.strip()
foo, bar = line.split('/t')
d = eval(bar)
d['click'] += 1
print '/t'.join([foo, str(d)])
7、在hive中执行
hive> CREATE TABLE t4 (foo STRING, bar MAP<STRING,INT>)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY '/t'
> COLLECTION ITEMS TERMINATED BY ','
> MAP KEYS TERMINATED BY ':'
> STORED AS TEXTFILE;
hive> add FILE add_mapper.py
INSERT OVERWRITE TABLE t4
> SELECT
> TRANSFORM (foo, bar)
> USING 'python add_mapper.py'
> AS (foo, bar)
> FROM t3;
FAILED: Error in semantic analysis: line 1:23 Cannot insert into target table because column number/types are different t4: Cannot convert column 1 from string to map<string,int>.
8、为什么会报出以上错误?貌似add_mapper.py的输出是string格式的,hive无法此这种格式的map认出。后查明,AS后边可以为字段强制指定类型
INSERT OVERWRITE TABLE t4
SELECT
TRANSFORM (foo, bar)
USING 'python add_mapper.py'
AS (foo string, bar map<string,int>)
FROM t3;
9、同时python脚本要去除字典转换后遗留下来的空格,引号,左右花排号等
#!/usr/bin/python
import sys
import datetime
for line in sys.stdin:
line = line.strip('/t')
foo, bar = line.split('/t')
d = eval(bar)
d['click'] += 1
d['uid'] += 1
strmap = ''
for x in str(d):
if x in (' ', "'"):
continue
strmap += x
print '/t'.join([foo, strmap])
10、执行后的结果
hive> select * from t4;
OK
jeffgeng {"click":14,"uid":null}
Time taken: 0.146 seconds
uid没有自增,原因待查
分享到:
相关推荐
在 Hbase 中的数据导入到 Hive 表后,利用 Hive 的 SQL 查询能力进行数据清洗、转换和分析,例如聚合、分组、过滤等操作,以得到有价值的信息。 3.3 数据导出与集成 使用 Sqoop 将 Hive 中处理后的数据导出到 ...
【Spark快速入门】指南 Spark,作为大数据处理领域的重要框架,是Apache软件基金会下的一个开源项目,由加州大学伯克利分校AMPLab开发并维护。它以高效、易用和可扩展性著称,尤其在大规模数据处理和分析中表现出色...
3. **Thrift 服务器**:提供跨语言支持,如 C++, Java, PHP, Python 和 Ruby,通过 Thrift 协议与 Hive 通信。 4. **解析器、编译器和优化器**:解析器将 HQL 转换为抽象语法树,编译器生成执行计划,优化器根据规则...
本教程主要聚焦于如何利用Python进行大数据分析,适合初学者入门。我们将通过一个名为"大数据大作业.ipynb"的Jupyter Notebook文件来探讨这个主题。 首先,Python中的Pandas库是处理结构化数据的核心工具。Pandas...
- 数据开发工程师:需要熟悉Java和Python编程语言,精通Hadoop生态系统,能够开发和优化Spark、Flink、MapReduce、Hive等应用程序,并且能够利用NoSQL数据库、分布式消息队列等技术构建企业级的数据处理和存储解决...
2. **Spark SQL**:允许用户通过SQL或DataFrame API进行结构化数据处理,与Hive等传统SQL系统兼容。 3. **Spark Streaming**:处理实时数据流,支持微批处理以提高效率。 4. **MLlib**:机器学习库,包含多种算法和...
整理了python从基础入门到高级进阶的所有资料: 01.初识Python.md 02.语言元素.md 03.分支结构.md 04.循环结构.md 05.构造程序逻辑.md 06.函数和模块的使用.md 07.字符串和常用数据结构.md 08.面向对象编程基础.md ...
2. **PySpark入门**:PySpark是Python绑定的Spark API,使Python开发者可以充分利用Spark的功能。本章节可能涵盖了如何配置和创建SparkSession,这是PySpark中执行所有操作的基础入口点。 3. **DataFrame和Dataset*...
大数据处理涉及Hadoop生态系统,包括HDFS、MapReduce、HBase、Hive等。理解分布式存储和计算原理是基础,然后学习Spark框架,包括Spark Core、Spark SQL、Spark Streaming等。此外,NoSQL数据库如MongoDB也是重要...
HBase、 Java9 、Java10 、MySQL优化 、JVM原理 、JUC多线程、 CDH版Hadoop Impala、 Flume 、Sqoop、 Azkaban、 Oozie、 HUE、 Kettle、 Kylin 、Spark 、Mllib机器学习、 Flink、 Python、 SpringBoot、 Hadoop3.x...
本教程将带你入门Python数据分析,使用诸如pandas、numpy、bokeh和sklearn等关键库,让你掌握数据分析的基本流程。 首先,环境安装至关重要。推荐使用Anaconda,这是一个集成的Python开发环境,内含多个用于数据...
Hadoop之HBase从入门到精通 本文将详细介绍HBase技术,从基础概念到高级应用,旨在帮助读者快速掌握HBase技术。 一、HBase技术介绍 HBase是Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储...
PySpark_Day05:Spark SQL 基础入门 本节课程主要介绍了 PySpark 库的 Spark SQL 模块的基础知识,包括 DataFrame 的概念、RDD 数据的聚合操作、RDD 分区处理算子、Hive SQL 的实现词频统计等。 一、DataFrame ...
Hadoop生态系统包括许多相关的开源项目,如Hive(数据仓库工具)、Pig(数据分析平台)、HBase(分布式数据库)、Zookeeper(协调服务)和Spark(高速计算引擎)。这些工具与Hadoop配合,可以构建完整的大数据解决...
2. **定义源和接收器**:使用 TableDescriptor 定义数据源(如 HDFS、Kafka 等)和数据接收器(如 Hive 表、文件等)。 3. **查询数据**:通过 Table API 算子(如 select、filter、groupBy、distinct、window 等)...
计算引擎:Scriptis基于Linkis,可与Spark,Hive,Python等多个计算引擎连接。 运行时功能:完整的作业生命周期显示和智能诊断。 结果集:多个结果集支持,自定义结果集别名和一键式可视化。 数据库服务:用于...
### Hadoop之Hbase从入门到精通 #### HBase技术介绍与概述 HBase是一种分布式、高可靠性且高性能的列式存储系统,它基于Hadoop生态体系构建,并且能够支持大规模的数据存储需求。HBase的设计灵感来源于Google的...
### HBase从入门到精通——关键技术点解析 #### 一、HBase技术概览 **HBase**(Hadoop Database)是一种分布式、可扩展的NoSQL数据库系统,它基于Google Bigtable论文的思想构建而成,并且作为Apache Hadoop生态...