parquet

Csv Data is not loading properly as Parquet using Spark

孤街浪徒 提交于 2020-08-25 03:42:27
问题 I have a table in Hive CREATE TABLE tab_data ( rec_id INT, rec_name STRING, rec_value DECIMAL(3,1), rec_created TIMESTAMP ) STORED AS PARQUET; and I want to populate this table with data in .csv files like these 10|customer1|10.0|2016-09-07 08:38:00.0 20|customer2|24.0|2016-09-08 10:45:00.0 30|customer3|35.0|2016-09-10 03:26:00.0 40|customer1|46.0|2016-09-11 08:38:00.0 50|customer2|55.0|2016-09-12 10:45:00.0 60|customer3|62.0|2016-09-13 03:26:00.0 70|customer1|72.0|2016-09-14 08:38:00.0 80

Repartition Dask DataFrame to get even partitions

谁说胖子不能爱 提交于 2020-08-24 06:37:37
问题 I have a Dask DataFrames that contains index which is not unique ( client_id ). Repartitioning and resetting index ends up with very uneven partitions - some contains only a few rows, some thousands. For instance the following code: for p in range(ddd.npartitions): print(len(ddd.get_partition(p))) prints out something like that: 55 17 5 41 51 1144 4391 75153 138970 197105 409466 415925 486076 306377 543998 395974 530056 374293 237 12 104 52 28 My DataFrame is one-hot encoded and has over 500

将OSS数据导入日志服务操作实践

孤街浪徒 提交于 2020-08-20 08:58:53
概述 对象存储服务(Object Storage Service,简称 OSS),是海量、安全、低成本、高可靠的云存储服务。OSS与日志服务相比,OSS存储的成本更低,不过日志服务中查询、结果展示、实时监控、数据加工等功能是OSS所不具备的。所以,可以将历史数据投递到OSS进行长期保存,SLS存储近期有查询分析需要的数据。 当历史数据有查询、分析需求时可以将OSS中的数据重新导入到SLS。 前提条件 已创建OSS Bucket,并将待导入的日志文件存储到OSS Bucket中,详情请参见 上传文件 。 已创建Project和Logstore,详情请参见 准备流程 。 已经完成 云资源访问授权 。 导入的OSS文件格式支持:JSON、CSV、Parquet、TEXT。 文件压缩格式支持:Gzip、Bzip2、Snappy,以及未压缩文件。 流程总览 检查导入日志服务的文件格式是否满足前提条件。 检查子账号是否有权限操作。主账号可以直接配置。 登陆 日志服务 配置OSS数据导入。 等待任务执行,查看数据及任务状态。 操作详情 测试导入的文件是之前从SLS发送到OSS的日志文件,bucket类型为标准存储。如果bucket是归档存储类型,建议提前解冻;在配置中也能进行解冻,不过解冻有一两分钟延迟,配置过程中解冻有可能误认为解冻不成功。 1. 检查OSS中待导入文件格式 在 oss控制台

行式存储和列式存储优缺点和paruqet文件结构

假装没事ソ 提交于 2020-08-19 16:47:22
参考文章: 行式存储和列式存储优缺点和paruqet文件结构 一、列式存储和行式存储的比较 列式存储和行式存储是针对数据在存储介质中的排序形式而言的,假设存在一张table,那么: 行式存储:依次连续存储第 1、2、3...行 的数据到存储介质中; 列式存储:依次连续存储第 1、2、3...列 的数据到存储介质中。 图1-1所示为行式存储和列式存储的示意图,一张table包含5个字段(列)即rowid、date/time、customer name以及quantity,共7行,图中的红色箭头表示存储顺序。 标图1-1. 行式存储和列式存储区别题 二、行式存储和列式存储的优缺点和适用场景 存储形式的差异决定了适用场景的不同: 行式存储适合 ”针对行”的查询 : 比如(mysql)select * from table_name limit 1,因为只会读取图1-1中的“row-based store 第1个绿色部分的数据”(只有指定的行“1 845 2 3 1”才会被读取),而select rowid from table_name则需要读取row-based store 所有 绿色部分的数据(虽然目的仅是要查询1个字段);此外还适用于insert/update操作比较多的场景,因为只需要更改部分数据块即可。 列式存储适合 “针对列”的查询 : 比如select rowid from

Spark之Spark Session、Dataframe、Dataset

风流意气都作罢 提交于 2020-08-17 15:52:38
Spark SQL简介 Spark SQL架构: Spark SQL是Spark的核心组件之一(2014.4 Spark1.0) 能够直接访问现存的Hive数据 提供JDBC/ODBC接口供第三方工具借助Spark进行数据处理 提供了更高层级的接口方便地处理数据 支持多种操作方式:SQL、API编程 支持多种外部数据源:Parquet、JSON、RDBMS等 Spark SQL是Spark的一个模块,主要用于处理结构化的数据。与基础的Spark RDD API不同的是,Spark SQL的接口会向提供更多的信息,包括数据结构以及要执行的计算操作等。在Spark SQL内部,会使用这些信息执行一些额外的优化。使用Spark SQL有两种方式,包括SQL语句以及Dataset API。 但是在计算的时候,无论你是用哪种接口去进行计算,它们使用的底层执行引擎是完全一模一样的。这种底层执行机制的统一,就意味着我们可以在不同的方式之间任意来回切换,只要我们可以灵活地运用不同的方式来最自然地表达我们要执行的计算操作就可以了。 对其中SQL的解释 Spark SQL的一个主要的功能就是执行SQL查询语句。Spark 2.0开始,最大的一个改变,就是支持了SQL 2003标准语法,还有就是支持子查询。 Spark SQL也可以用来从Hive中查询数据

使用Apache Hudi构建大规模、事务性数据湖

社会主义新天地 提交于 2020-08-14 20:33:12
一个近期由Hudi PMC & Uber Senior Engineering Manager Nishith Agarwal分享的Talk 关于Nishith Agarwal更详细的介绍,主要从事数据方面的工作,包括摄取标准化,数据湖原语等。 什么是数据湖?数据湖是一个集中式的存储,允许以任意规模存储结构化和非结构化数据。你可以存储原始数据,而不需要先转化为结构化的数据,基于数据湖之上可以运行多种类型的分析,如dashboard、大数据处理的可视化、实时分析、机器学习等。 接着看看对于构建PB级数据湖有哪些关键的要求 第一个要求:增量摄取(CDC) 企业中高价值的数据往往存储在OLTP中,例如下图中,users表包含用户ID,国家/地区,修改时间和其他详细信息,但OLTP系统并未针对大批量分析进行优化,因此可能需要引入数据湖。同时一些企业采用备份在线数据库的方式,并将其存储到数据湖中的方法来摄取数据,但这种方式无法扩展,同时它给上游数据库增加了沉重的负担,也导致数据重写的浪费,因此需要一种增量摄取数据的方法。 第二个要求:Log Event去重 考虑分析大规模时间序列数据的场景,这些事件被写入数据管道,并且数量非常大,可达数十亿,每秒可达百万的量。但流中可能有重复项,可能是由于至少一次(atleast-once)保证,数据管道或客户端失败重试处理等发送了重复的事件