Я использую искру 1.6.2 Java API, чтобы загрузить некоторые данные в Dataframe DF1, который выглядит как:Partition Искра Dataframe на основе конкретного столбца и сбросить содержимое каждого раздела на CSV
Key Value
A v1
A v2
B v3
A v4
Теперь мне нужно разбить DF1 на подмножество значения в столбце «Ключ» и выгрузить каждый раздел в файл csv (используя искро-csv).
Желаемая Выход:
A.csv
Key Value
A v1
A v2
A v4
B.csv
Key Value
B v3
В настоящее время, что я делаю строю HashMap (MyList), содержащее подмножество значения, которые мне нужно фильтровать, а затем итерации через эту фильтрацию для каждого итерации другого Ключа. С помощью следующего кода я получаю то, что хочу, но мне интересно, если есть более эффективный способ сделать это:
DF1 = <some operations>.cache();
for (Object filterKey: myList.keySet()) {
DF2 = DF1.filter((String)myList.get(filterKey));
DF2.write().format.format("com.databricks.spark.csv")
.option("header", "true")
.save("/" + filterKey + ".csv");
}