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이지만 원하는대로 쉽게 변경할 수 있습니다.