Pliki "części" są automatycznie traktowane jako zbiór plików.
val data = sc.textFile("/path/to/my/file") // Will read all parts.
Wystarczy dodać nagłówek i napisać go:
val header = sc.parallelize(Seq("...header..."))
val withHeader = header ++ data
withHeader.saveAsTextFile("/path/to/my/modified-file")
Zauważ, że to musi odczytywać i zapisywać wszystkie dane, to będzie trochę wolniej niż to, co można intuicyjnie spodziewać. (W końcu dodajesz tylko jedną nową linię!) Z tego i innych powodów lepiej nie dodawać tego nagłówka, a zamiast tego przechowywać metadane (listę kolumn) oddzielnie od danych.
Utwórz nowy Rdd z 'val header = sc.parallize (List (" \ n "))) i po prostu dodaj te dwa Rdd razem' header ++ data'. Ale to nie ma sensu, dlaczego tego potrzebujesz? – ipoteka
Przykro mi, w nowej linii miałem na myśli linię z nazwami niektórych kolumn. Mój błąd. W każdym razie to jest dokładnie to, czego potrzebuję, dziękuję! – amarchin
Gorąco polecam spojrzenie na DataFrames. Po prostu, ramka danych jest po prostu rdd z pewnymi meta-informacjami o schemacie i typach. I pamiętaj, że 'header ++ data' nie będzie zachowywał porządku dla dużych Rdd. – ipoteka