Apache spark 预处理数据的最佳方法
我有以下模式的数据Apache spark 预处理数据的最佳方法,apache-spark,apache-spark-sql,apache-spark-dataset,Apache Spark,Apache Spark Sql,Apache Spark Dataset,我有以下模式的数据 person_-id | category_-id | date | type 每天收集的数据量巨大,平均接近95GB。 我的用例是在提供的日期范围内获取给定类别id的所有人员id。 这在hdfs上以csv文件的形式存在。 当使用spark处理3周时,实际转储运行需要半小时。 如何对其进行预处理以提高spark工作的性能? 我尝试按日期分组,但没有多大帮助。您可以从以下步骤开始(因为我们没有关于您的数据或群集的详细信息。共享您的Spark Web UI屏幕截图) 预处理数据
person_-id | category_-id | date | type
每天收集的数据量巨大,平均接近95GB。
我的用例是在提供的日期范围内获取给定类别id的所有人员id。
这在hdfs上以csv文件的形式存在。
当使用spark处理3周时,实际转储运行需要半小时。
如何对其进行预处理以提高spark工作的性能?
我尝试按日期分组,但没有多大帮助。您可以从以下步骤开始(因为我们没有关于您的数据或群集的详细信息。共享您的Spark Web UI屏幕截图)
- 预处理数据并将其保存为有效的二进制格式,如拼花地板(或Avro)
- 按
或日期
个人id
- 查看是否存在掉队任务(数据倾斜)
- 如果洗牌占用大量处理时间,请使用高效的序列化格式(Kryo)和压缩来减少洗牌大小