python - 한글 - 판다스 데이터프레임




PySpark의 테이블 데이터 프레임을 CSV로 내보내는 방법은 무엇입니까? (4)

Apache Spark 2+의 경우 데이터 프레임을 단일 csv 파일로 저장합니다. 다음 명령 사용

query.repartition(1).write.csv("cc_out.csv", sep='|')

여기서 1 은 csv의 파티션 하나만 필요하다는 것을 나타냅니다. 요구 사항에 따라 변경할 수 있습니다.

Spark 1.3.1 (PySpark)을 사용하고 있으며 SQL 쿼리를 사용하여 테이블을 생성했습니다. 이제 DataFrame 객체가 있습니다. 이 DataFrame 개체 ( "테이블"이라고 함)를 csv 파일로 내 DataFrame 조작하고 열을 플롯 할 수 있습니다. DataFrame "테이블"을 CSV 파일로 내보내려면 어떻게합니까?

감사!


spark-csv를 사용할 수없는 경우 다음을 수행 할 수 있습니다.

df.rdd.map(lambda x: ",".join(map(str, x))).coalesce(1).saveAsTextFile("file.csv")

줄 바꿈이나 쉼표로 문자열을 처리 해야하는 경우 작동하지 않습니다. 이것을 사용하십시오 :

import csv
import cStringIO

def row2csv(row):
    buffer = cStringIO.StringIO()
    writer = csv.writer(buffer)
    writer.writerow([str(s).encode("utf-8") for s in row])
    buffer.seek(0)
    return buffer.read().strip()

df.rdd.map(row2csv).coalesce(1).saveAsTextFile("file.csv")

데이터 프레임이 드라이버 메모리에 적합하고 로컬 파일 시스템에 저장하려는 경우 toPandas 메소드를 사용하여 Spark DataFrame 을 로컬 Pandas DataFrame으로 변환 한 다음 to_csv 를 사용할 수 to_csv .

df.toPandas().to_csv('mycsv.csv')

그렇지 않으면 spark-csv 사용할 수 있습니다.

  • 스파크 1.3

    df.save('mycsv.csv', 'com.databricks.spark.csv')
  • 스파크 1.4+

    df.write.format('com.databricks.spark.csv').save('mycsv.csv')

Spark 2.0 이상에서는 csv 데이터 소스를 직접 사용할 수 있습니다.

df.write.csv('mycsv.csv')

이건 어때요 (한 라이너를 원하지 않습니까)?

for row in df.collect():
    d = row.asDict()
    s = "%d\t%s\t%s\n" % (d["int_column"], d["string_column"], d["string_column"])
    f.write(s)

f는 열린 파일 디스크립터입니다. 또한 구분 기호는 TAB char이지만 원하는대로 쉽게 변경할 수 있습니다.







export-to-csv