- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我检查了 spark 作业的输出 parquet 文件,由于 Out of Memory Errors
的缘故,该作业总是 beaks。我在 Spark 1.6.0
上使用 Cloudera 5.13.1
我注意到 parquet 行组大小不均匀。第一排和最后一排组很大。剩下的真的很小...
parquet-tools RC = row count
和 TS = total size
的缩短输出:
row group 1: RC:5740100 TS:566954562 OFFSET:4
row group 2: RC:33769 TS:2904145 OFFSET:117971092
row group 3: RC:31822 TS:2772650 OFFSET:118905225
row group 4: RC:29854 TS:2704127 OFFSET:119793188
row group 5: RC:28050 TS:2356729 OFFSET:120660675
row group 6: RC:26507 TS:2111983 OFFSET:121406541
row group 7: RC:25143 TS:1967731 OFFSET:122069351
row group 8: RC:23876 TS:1991238 OFFSET:122682160
row group 9: RC:22584 TS:2069463 OFFSET:123303246
row group 10: RC:21225 TS:1955748 OFFSET:123960700
row group 11: RC:19960 TS:1931889 OFFSET:124575333
row group 12: RC:18806 TS:1725871 OFFSET:125132862
row group 13: RC:17719 TS:1653309 OFFSET:125668057
row group 14: RC:1617743 TS:157973949 OFFSET:134217728
这是一个已知错误吗?如何在 Spark 中设置 Parquet block 大小(行组大小)?
编辑:
Spark 应用程序所做的是:它读取一个大的 AVRO 文件,然后按两个分区键分配行(在选择中使用 distribute by <part_keys>
),然后使用以下方法为每个分区写入一个 parquet 文件:
ojit_代码
最佳答案
您的 RDD 可能分区不均匀。每个 block 中的行数与 RDD 不同分区的大小有关。
创建 RDD 时,每个分区包含大致相同数量的数据(由于 HashPartitioner )。在处理完 Spark 作业后,一个分区可能包含比另一个分区更多的数据,也许过滤器转换从一个分区中删除的行多于从另一个分区中删除的行。可以调用 repartition 重新平衡分区在写入 parquet 文件之前。
编辑:如果问题与分区无关,减小行组的大小可能会有所帮助:
sc.hadoopConfiguration.setInt( "parquet.block.size", blockSize )
关于hadoop - Spark parquet 不均匀 block 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49323557/
我需要在半径R的圆内生成一个均匀随机点。 我意识到,通过在区间 [0 ... 2π) 中选择均匀随机的角度,并在区间 (0 ... R) 中选择均匀随机的半径,我最终会得到更多的点朝向中心,因为对于两
我想在一个正方形内生成 N 个点(均匀地)。我怎样才能做到这一点? 最佳答案 非常酷的问题,比我想象的要困难得多,但这就是想法。有关于 n 边形的论文,但我只会做正方形。因此,圆的均匀分布是一个常见问
考虑以下示例: import itertools import numpy as np a = np.arange(0,5) b = np.arange(0,3) c = np.arange(0,7)
SQL Server 将一组值分成 5 组,每组的 sum(count) 应该均匀分布。 表仅包含 2 列 rid 和 count。 create table t1(rid int, count in
我有以下简单的 HTML。 A B C 和 CSS: ul { width: 100%; display: flex; flex-direction:
我是一名优秀的程序员,十分优秀!