2015-06-05 5 views
12

Verileri ayrı metin dosyalarına vermek istiyorum; Bu kesmek ile yapabilirsiniz:Python Spark Dataframes: Grupları metin dosyasına dışa aktarmanın daha iyi bir yolu

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)) 

Spark 1.3.1/Python dataframes ile yapmak doğru yolu nedir? N (veya N + 1) işlerinin aksine tek bir işte yapmak istiyorum.

olabilir: genel olarak

saveAsTextFileByKey()

+0

PySpark 1.4+ sürümünde bunu yapmanın bir yolu var: http://stackoverflow.com/a/37150604/877069 –

+0

Olası çoğalt [Anahtar ile birden çok çıktıya yaz Spark - bir kıvılcım işi] (http://stackoverflow.com/questions/23995040/write-to-multiple-outputs-by-key-spark-one-spark-job) –

cevap

2

Kıvılcım birden çıkışları ile RDD faaliyeti bulunmamaktadır. Ama dosya yazmak için güzel bir hile var: Write to multiple outputs by key Spark - one Spark job

+0

Üzgünüz, bu mümkün olup olmadığını bilmiyorum PySpark'tan yapmak. Python arabiriminde hiç deneyimim yok. –

+0

Hey evet. Bu mesajı gördüm, ancak python tarafında nasıl uygulanacağı belli değildi. – bcollins

+1

Bu mümkün olmayabilir. PySpark, Spark API'nin çoğunu kapsarken, bu işi yapmak için de Hadoop dosya API'sine erişmeniz gerekir. Umarım ödül, Python API'sını gerçekten bilen birini çeker! –