2015-06-05 10 views
12

Desidero esportare i dati in file di testo separati; Posso farlo con questo hack:Python Spark Dataframes: modo migliore per esportare i gruppi in un file di testo

for r in sqlContext.sql("SELECT DISTINCT FIPS FROM MY_DF").map(lambda r: r.FIPS).collect(): 
    sqlContext.sql("SELECT * FROM MY_DF WHERE FIPS = '%s'" % r).rdd.saveAsTextFile('county_{}'.format(r)) 

Qual è il modo giusto per farlo con Spark 1.3.1/Python dataframes? Voglio farlo in un singolo lavoro rispetto ai lavori N (o N + 1).

Può essere:

saveAsTextFileByKey()

+0

C'è un modo per farlo in PySpark 1.4+: http://stackoverflow.com/a/37150604/877069 –

+0

Possibile duplicato di [Scrivi su più uscite tramite chiave Spark - One Spark job] (http://stackoverflow.com/questions/23995040/write-to-multiple-outputs-by-key-spark-one-spark-job) –

risposta

2

Spark in generale non ha operazioni RDD con più uscite. Ma per scrivere i file c'è un bel trucco: Write to multiple outputs by key Spark - one Spark job

+0

Scusa, non so se è possibile fare da PySpark. Non ho esperienza con l'interfaccia Python. –

+0

Ehi, si. Ho visto questo post, ma non è chiaro come implementare sul lato python. – bcollins

+1

Potrebbe non essere possibile. Mentre PySpark copre la maggior parte delle API Spark, è necessario anche l'accesso all'API del file Hadoop per farlo funzionare. Speriamo che la tua generosità attragga qualcuno che conosce realmente l'API Python! –

Problemi correlati