2015-06-16 13 views
7

Próbuję zapisać DataFrame do S3 w pyspark w Spark1.4 użyciu DataFrameWriterJak określić ścieżkę, w której zapisuje pliki plik saveAsTable?

df = sqlContext.read.format("json").load("s3a://somefile") 
df_writer = pyspark.sql.DataFrameWriter(df) 
df_writer.partitionBy('col1')\ 
     .saveAsTable('test_table', format='parquet', mode='overwrite') 

Pliki parkiet poszedł „/ tmp/ula/magazyn/....”, który jest lokalnym katalogu tmp na moim kierowcy.

Instalowałem plik hive.metastore.warehouse.dir w pliku hive-site.xml do lokalizacji "s3a: // ....", ale iskra nie wydaje się być zgodna z ustawieniami mojego magazynu ula.

+0

zapisuje ścieżkę dostępu do pliku z kolumny "name =" jak S3A: // wiadro/foo/col1 = 1 /, S3A:// bucket/foo/col1 = 2 /, s3a: // bucket/foo/col1 = 3 /, ..... Czy istnieje sposób na uniknięcie dołączenia nazwy kolumny? jak s3a: // bucket/foo/1 /, s3a: // bucket/foo/2 / – androboy

Odpowiedz

14

Użyj path.

df_writer.partitionBy('col1')\ 
     .saveAsTable('test_table', format='parquet', mode='overwrite', 
         path='s3a://bucket/foo') 
0

można użyć insertInto(tablename) nadpisać istniejącą tabelę od 1.4

Powiązane problemy