当前位置: 首页 > 知识库问答 >
问题:

奇怪的镶木地板写入瓶颈

彭修筠
2023-03-14

我对火花有点陌生。在我的spark calc完成后,我目前在amazon s3上看到一些奇怪的缓慢的拼花。

写一个小文件需要1.8小时(写时有2个分区)

我用一个不同的更大的文件(更多行更多列)运行了相同的spark calc(编写时有3个分区)

写入调用本身:df.write.mode("over↑"). par

我试过查看SQL计划,它们看起来没有任何不同。即使速度慢是由于文件差异造成的,我也不希望速度慢

对于我的慢文件,我取出了镶木地板写入,总计算时间从 2.6 小时开始 -

你们对调查什么有什么建议吗?我尝试检查DAG和历史服务器的SQL选项卡,我没有看到任何突出的东西。遗嘱执行人的数量是一样的。我看到的主要区别是,在编写parquet时,更大更快的文件有3个任务,但是每个任务比更小更慢的文件处理更多的行和字节。


共有1个答案

盛跃
2023-03-14

相信问题是我没有意识到这是在做懒惰的评估。

 类似资料:
  • 我有一个超过10亿行的DataFrame(df) 从上面的命令中,我了解到我的100个工作节点集群(spark 2.4.5)中只有5个工作节点将执行所有任务。使用聚结剂(5)需要7小时才能完成。 我应该尝试< code >重新分区而不是< code >联合? 有没有一种更快速/高效的方法来写出128 MB大小的拼花文件,或者我需要首先计算数据帧的大小来确定需要多少分区。 例如,如果我的数据帧大小为

  • 我有一个数据帧,它是由运行特定日期的每日批处理创建的,然后保存在HDFS(Azure Data Lake Gen 2)中。 它是用这样的东西保存的 如您所见,我没有对数据帧进行分区,因为它只包含一个日期。 例如,第一天的第一个文件将存储在文件夹中 交易/2019/08/25 然后第二天,它就会在文件夹里 贸易/2019/08/26 问题是,当所有数据都放好后,日期上的过滤器谓词是否仍会被按下,HD

  • 我有一个avro格式的数据流(json编码),需要存储为镶木地板文件。我只能这样做, 把df写成拼花地板。 这里的模式是从json中推断出来的。但是我已经有了avsc文件,我不希望spark从json中推断出模式。 以上述方式,parquet文件将模式信息存储为StructType,而不是avro.record.type。是否也有存储avro模式信息的方法。 火花 - 1.4.1

  • 问题内容: 有没有办法从Java创建镶木地板文件? 我的内存中有数据(java类),我想将其写入一个Parquet文件中,以便以后从apache-drill中读取它。 有没有简单的方法可以做到这一点,例如将数据插入sql表? 得到它了 谢谢您的帮助。 结合答案和此链接,我能够创建一个实木复合地板文件并用钻头将其读回。 问题答案: 不建议使用ParquetWriter的构造函数(1.8.1),但不建

  • 有没有一种方法可以直接从基于avro模式的parquet文件在Amazon Athena中创建表?模式被编码到文件中,所以我需要自己实际创建DDL看起来很愚蠢。 我看到了这个,还有另一个复制品 但它们与Hive直接相关,这对雅典娜不起作用。理想情况下,我正在寻找一种以编程方式执行此操作的方法,而无需在控制台上定义它。

  • 我的 hdfs 中有 Parquet 文件。我想将这些镶木地板文件转换为csv格式