Obecnie próbuję zbiorczo migrować zawartość bardzo dużej tabeli MySQL do pliku parkietu przez Spark SQL. Ale gdy tak się stanie, szybko zabraknie mi pamięci, nawet jeśli ustawię wyższy limit pamięci sterownika (używam iskry w trybie lokalnym). Przykładowy kod:Masowa migracja danych przez Spark SQL
Dataset<Row> ds = spark.read()
.format("jdbc")
.option("url", url)
.option("driver", "com.mysql.jdbc.Driver")
.option("dbtable", "bigdatatable")
.option("user", "root")
.option("password", "foobar")
.load();
ds.write().mode(SaveMode.Append).parquet("data/bigdatatable");
Wygląda Spark próbuje odczytać całą zawartość tabeli do pamięci, która nie będzie działać bardzo dobrze. Jakie jest najlepsze podejście do masowej migracji danych za pośrednictwem Spark SQL?
Jesteś uzyskanie OOM nie dlatego, że iskra jest źle skonfigurowana, prawdopodobnie należy włączyć przesyłanie strumieniowe w sterowniku: http://stackoverflow.com/a/2448019/2439539 – r90t