Das Ausführen der RDD ist fehlgeschlagen, während Spark record delimiter mit org.apache.hadoop.conf.Configuration festgelegt wurde

8

Ich möchte eine große Textdatei "mydata.txt" (die Größe der tatsächlichen Datei beträgt etwa 30 GB) mit Spark bearbeiten. Es ist Datensatzbegrenzer ist "\ |" gefolgt von "\ n". Da das Standard-Record-Trennzeichen der Ladedatei (von "sc.textFile") "\ n" ist, habe ich die Eigenschaft "texinputformat.record.delimiter" von org.apache.hadoop.conf.Configuration auf "\ | \ n" gesetzt Geben Sie den Datensatzbegrenzer an:

%Vor%

Als nächstes habe ich den folgenden Code in Spark-Shell ausgeführt:

%Vor%

so weit so gut. jedoch

%Vor%

Warum kann ich RDD "Daten" nicht manipulieren, während alles in Ordnung ist, wenn sc.textFile("mydata.txt") verwendet wird? Und wie man es repariert?

    
wzz 28.11.2014, 03:26
quelle

1 Antwort

14

Sie erhalten diese Ausnahme, weil Sie org.apache.hadoop.conf.Configuration schließen, aber nicht serializable

%Vor%

Sie können zwei Dinge tun: 1. Registrieren Sie die Konfiguration mit einem Kyro Serializer ODER 2. Markieren Sie einfach Ihre conf-Variable als transient , was Spark grundsätzlich anweist, es nicht mit der Schließung zu versenden.

%Vor%     
Soumya Simanta 28.11.2014, 05:59
quelle