Мы записываем фрейм данных spark в паркет с разделением по (год, месяц, дата) и с режимом добавления. Проблема здесь заключается в том, что, поскольку данные увеличиваются в месте хранения (где хранятся файлы паркета), время, необходимое для записи, резко увеличивается. Когда я проверил журналы, я обнаружил, что filescanRDD читает все файлы паркета, доступные в хранилище. Есть ли способ улучшить производительность.
пример кода:
df.repartition('day').write.partitionBy('year','month','day').parquet("location",mode='append')
Ниже приведен журнал, в котором есть промежуток времени с 4:10: 15 до 5:10:15. ничего не вижу.
20/01/23 04:10:15 INFO metrics: type=HISTOGRAM, name=application_1577238363313_31976.1.CodeGenerator.sourceCodeSize, count=394, min=430, max=467509, mean=4483.268903934098, stddev=5676.791863953458, median=2491.0, p75=4394.0, p95=15365.0, p98=24887.0, p99=32063.0, p999=32063.0
20/01/23 05:10:15 INFO metrics: type=GAUGE, name=application_1577238363313_31976.1.NettyBlockTransfer.shuffle-client.usedDirectMemory, value=50331648
20/01/23 05:10:15 INFO metrics: type=GAUGE, name=application_1577238363313_31976.1.NettyBlockTransfer.shuffle-client.usedHeapMemory, value=50331648
20/01/23 05:10:15 INFO metrics: type=GAUGE, name=application_1577238363313_31976.1.NettyBlockTransfer.shuffle-server.usedDirectMemory, value=50331648
20/01/23 05:10:15 INFO metrics: type=GAUGE, name=application_1577238363313_31976.1.NettyBlockTransfer.shuffle-server.usedHeapMemory, value=50331648