草庐IT

parquet-format

全部标签

java - 如何使用 Java 在 HDFS 中创建和填充 Parquet 文件?

在没有Hive或Impala库支持的情况下,使用Java在HDFS中创建和填充Parquet文件的最佳方法是什么?我的目标是将一个简单的csv记录(字符串)写入位于HDFS中的Parquet文件。之前提出的所有问题/答案都令人困惑。 最佳答案 好像parquet-mr是要走的路。他们提供Thrift和Avro的实现。自己的实现应该基于ParquetOutputFormat可能看起来类似于AvroParquetOutputFormat和AvroWriteSupport进行实际转换。 关于j

hadoop - 当 parquet 使用 Snappy 算法而不是 gzip 时,将 parquet 数据写入 hive 的 spark 作业卡在了最后一个任务中

我正在将一个Parquet文件从DataFrame写入Hive。当我使用snappy作为parquet压缩算法时,我可以看到所有任务,但1个任务在写作阶段迅速完成(例如30/31)。由于大量的gc进程,最后一项任务需要很长时间才能完成。当我使用gzip作为parquet压缩算法时,一切都会正常。我想知道两种压缩算法有什么不同。 最佳答案 gzip自然受到Hadoop的支持。gzip基于DEFLATE算法,它结合了LZ77和霍夫曼编码。GZIP压缩比Snappy使用更多CPU资源,但提供更高的压缩率。GZip通常是冷数据的好选择,不经

java - 在 native Java map reduce 中将 Parquet FIXED_LEN_BYTE_ARRAY 转换为 DECIMAL

我的底层数据是使用HIVE输出格式(org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat)编写的尝试使用nativeJavaMapreduce读取此数据byte[]b=value.getBinary(value.getType().getFieldIndex(field),0).getBytes();HiveDecimalhd=HiveDecimal.create(b,true);此处的值是org.apache.parquet.example.data.Group类型hd在这种情况下变为NULL。但下面对字符串/整

hadoop - 损坏的 Parquet 文件

我在尝试使用spark读取parquet文件时遇到问题。prquet文件由sqoop创建:sqoopimport\--connectjdbc:teradata:///Database=\--connection-managerorg.apache.sqoop.teradata.TeradataConnManager\--username\--password\--tableOFFERING\--target-dir/DWH/OFFERING\--as-parquetfile\--compress\--compression-codecorg.apache.hadoop.io.compr

hadoop - Hive parquet snappy 压缩不起作用

我正在使用表格属性创建一个表格骨架TBLPROPERTIES('PARQUET.COMPRESSION'='SNAPPY')(因为文件是Parquet格式)并在创建表之前设置一些参数:sethive.exec.dynamic.partition.mode=nonstrict;setparquet.enable.dictionary=false;sethive.plan.serialization.format=javaXML;SEThive.exec.compress.output=true;SETmapred.output.compression.type=BLOCK;setavro

apache-spark - PySpark:如何在读取 Parquet 时读取分区列

我将数据存储在Parquet文件和按年、月、日分区的配置单元表中。因此,每个parquet文件都存储在/table_name/year/month/day/文件夹中。我只想读入部分分区的数据。我有如下各个分区的路径列表:paths_to_files=['hdfs://data/table_name/2018/10/29','hdfs://data/table_name/2018/10/30']然后尝试做类似的事情:df=sqlContext.read.format("parquet").load(paths_to_files)但是,我的数据不包含关于年月日的信息,因为这不是数据本身的一

apache-spark - 阅读时忽略了 Spark 中已排序文件的 Parquet 摘要文件 (_metadata)?

我有一个包含不同列和ID的排序数据集。数据集已排序(也使用parquet-tools验证):示例:file1:ID1-10file2:ID10-12file3:ID12-33....我还生成并编写了_metadata和_common_metadata文件。我尝试使用过滤器查询(非常大的)数据集valmydata=spark.read.parquet("s3a://.../mylocation")valresult=mydata.filter(mydata("id")===11)result.explain(true)解释告诉我:==ParsedLogicalPlan==Filter(i

apache-spark - 具有合并 Parquet 文件的 Impala 表的性能问题

在这里,我使用python实用程序使用Pyarrow库为单个数据集创建多个parquet文件,因为一天的数据集大小很大。这里的parquet文件在每个拆分的parquet文件中包含10K的parquet行组,最后我们将拆分文件组合成一个文件以创建一个大的单个parquet文件。在这里,我创建了两个带有合并文件和多个拆分文件的Impala表。当拆分文件数据加载到Impala表中并尝试查询它时,结果会在几秒钟内更快,但是当Impala表是在单个合并的parquet文件上创建时。与提到的拆分文件Impala表相比,它会产生性能问题。在尝试计算Impala表的统计信息时,我无法识别这两个表之间

hadoop - parquet、avro 和其他 hadoop 文件格式的第一行可以有不同的布局吗?

为什么我必须将RDD转换为DF才能将其编写为parquet、avro或其他类型?我知道写RDD因为不支持这些格式。我实际上是在尝试编写一个Parquet文件,第一行仅包含标题日期,其他行包含详细记录。示例文件布局2019-04-06101,peter,20000102,robin,25000我想用上面的内容创建一个Parquet。我已经有一个包含上述内容的csv文件sample.csv。作为数据帧读取时的csv文件仅包含第一个字段,因为第一行只有一列。rdd=sc.textFile('hdfs://somepath/sample.csv')df=rdd.toDF()df.show()对

apache-spark - 如何从 spark2.3 访问 us-east-2 区域上的 Parquet 文件(使用 hadoop aws 2.7)

我们可以从当前代码访问us-east-1,但无法访问us-east-2上的parquet文件。请注意“us-east-2”连接,创建datafream在intellij上工作正常,但当我们从spark-shell尝试时它会给出400错误。我试图在sparkshell上工作/Users/test/Downloads/spark-2.3.3-bin-hadoop2.7/bin/spark-shell--jars/Users/test/Downloads/hadoop-aws-2.7.3.jar,/Users/测试/下载/aws-java-sdk-1.7.4.jarval配置=sc.hado