草庐IT

parquet-mr

全部标签

hadoop - 使用 Spark 对 Parquet 文件进行计数操作

我在HDFS中有两组相同的Parquet格式数据。一组按col1排序,另一组未排序。sorted_table约为127GB,unsorted_table约为117GB。大小在这里无关紧要。我使用SparkSQL运行了以下两个查询:selectcol1,count(*)fromsorted_tablewherecol1=someIntgroupbycol1selectcol1,count(*)fromunsorted_tablewherecol1=someIntgroupbycol1我在sparkUI上分析了这些查询,我发现对sorted_table的查询只读取了127MB的数据,而对u

hadoop - hive 在 Spark 上。读取 Parquet 文件

我正在尝试将parquet文件读入Spark上的Hive。所以我发现我应该做这样的事情:CREATETABLEavro_testROWFORMATSERDE'org.apache.hadoop.hive.serde2.avro.AvroSerDe'STOREDASAVROTBLPROPERTIES('avro.schema.url'='/files/events/avro_events_scheme.avsc');CREATEEXTERNALTABLEparquet_testLIKEavro_testSTOREDASPARQUETLOCATION'/files/events/parqu

python - 将数据增量写入 parquet 文件

要从pandas数据框写入parquet,我正在执行以下操作:df=pd.DataFrame(DATA)table=pa.Table.from_pandas(df)pq.write_table(table,'DATA.parquet')但是,如果我假设有1B行,那么它就不能很好地工作,而且它无法放入内存。在那种情况下,我将如何增量写入数据。例如,像这样的东西:DATA=[]BACTCH_SIZE=10000withopen('largefile.csv')asf:fornum,lineinenumerate(f):if(len(DATA)==BATCH_SIZE):pq.write_t

hadoop - 有没有办法从 MR 作业中的 reduce 任务访问成功的 map 任务的数量?

在我的Hadoopreducers中,我需要知道在当前作业中执行了多少个成功的映射任务。我提出了以下建议,据我所知,这是行不通的。CountertotalMapsCounter=context.getCounter(JobInProgress.Counter.TOTAL_LAUNCHED_MAPS);CounterfailedMapsCounter=context.getCounter(JobInProgress.Counter.NUM_FAILED_MAPS);longnSuccessfulMaps=totalMapsCounter.getValue()-failedMapsCoun

hadoop - 在 HDFS 文件的一部分上运行 MR 作业

假设您有一个存储在hdtf中的大文件,其中包含结构化数据。现在的目标是只处理文件中的一部分数据,就像文件中第二列值介于某某之间的所有行一样。是否可以启动MR作业,以便hdfs仅流式传输文件的相关部分,而不是将所有内容流式传输到映射器。原因是我想通过只处理我需要的部分来加快工作速度。可能一种方法是运行MR作业来创建新文件,但我想知道是否可以避免这种情况?请注意,我的目标是将数据保存在HDFS中,我不想从数据库中读取和写入数据。 最佳答案 HDFS将文件存储为block中的一堆字节,没有索引,因此无法只读入文件的一部分(至少在撰写本文时

hadoop - 如何将 Parquet 文件转换为 Avro 文件?

我是hadoop和大数据技术的新手。我喜欢将parquet文件转换为avro文件并读取该数据。我在几个论坛上搜索,它建议使用AvroParquetReader。AvroParquetReaderreader=newAvroParquetReader(file);GenericRecordnextRecord=reader.read();但我不确定如何包含AvroParquetReader。我不能够完全导入它。我可以使用spark-shell读取这个文件并且可以将它转换成一些JSON然后可以将该JSON转换为avro。但我正在寻找一个更简单的解决方案。 最佳答

hadoop - 如何处理大量的 Parquet 文件

我在Hadoop上使用ApacheParquet,一段时间后我有一个问题。当我在Hadoop上的Spark中生成Parquet时,它会变得非常困惑。当我说凌乱时,我的意思是Spark作业正在生成大量Parquet文件。当我尝试查询它们时,我正在处理大量查询,因为Spark正在将所有文件合并在一起。你能告诉我正确的处理方法吗,或者我可能会误用它们?您是否已经处理过它,您是如何解决的?更新1:将这些文件合并到一个Parquet中的一些“副业”是否足够好?最好使用什么大小的Parquet文件,一些上下边界? 最佳答案 看看thisGitH

file - avro 和 parquet 格式的数据是否必须在 hadoop 基础设施中写入?

我一直在研究在项目中使用avro、parquet和其他数据源的利弊。如果我从其他不使用Hadoop的人那里接收输入数据,他们是否能够以avro/parquet格式提供此输入数据?到目前为止,我对这些格式的阅读仅限于Hadoop基础设施领域,所以我想知道对于那些只使用Oracle/SQL的人来说,以这种格式提供数据会有多困难。 最佳答案 可以在没有Hadoop的情况下使用这些格式,但这样做的难易程度取决于语言绑定(bind)。例如,在单机上读/写Parquet文件对于Java语言绑定(bind)(甚至称为parquet-mr,其中mr

hadoop - Avro、parquet 和 SequenceFileFormat 在 Hadoop 生态系统中的地位及其效用

我看到在导入和存储到HDFS时使用了不同的文件格式,并且数据处理引擎在执行它们自己的一组过程时也使用这些格式。那么这些文件格式有什么样的区别,以及如何为不同的文件格式做出选择用例。作为新手,它会造成混淆。请帮助相同的人。 最佳答案 选择取决于您所面临的用例,具体取决于您拥有的数据类型、与处理工具的兼容性、模式演变、文件大小、查询类型和读取性能。一般来说:Avro更适合随时间变化的事件数据序列用于在MR作业之间分片的数据集Parquet的柱状格式更适合分析这里有一些可以帮助你的关键写入性能(越多+越快)顺序:+++阿夫罗:++Parq

hadoop - 在 s3 中的多个 Parquet 文件之上创建 Hive 表

我们在s3(parquet文件)中有以下格式的数据集,数据根据行号分为多个parquet文件。data1_1000000.parquetdata1000001_2000000.parquetdata2000001_3000000.parquet...我们有超过2000个这样的文件,每个文件都有数百万条记录。所有这些文件都具有相同的列数和结构。如果我们需要在配置单元中对数据集进行分区,其中一列中有时间戳。我们如何指向数据集并在其之上创建单个Hive外部表以供我们分析,或者可以使用Spark对其进行分析?谢谢。 最佳答案 您可以简单地指