Python 火花转换为S3

Python 火花转换为S3,python,amazon-web-services,pandas,apache-spark,amazon-s3,Python,Amazon Web Services,Pandas,Apache Spark,Amazon S3,目前我正在使用Spark和Pandas框架。如何以一种可以写入s3的方便方式转换数据帧 我尝试了下面的选项,但我得到了错误,因为df是一个数据帧,它并没有写选项 df.write() .format("com.databricks.spark.csv") .option("header", "true") .save("123.csv"); 在Spark中运行此程序时,一种方法是将Pandas数据帧转换为Spark数据帧,然后将其保存到S3 下面的代码片段创建pdfPa

目前我正在使用Spark和Pandas框架。如何以一种可以写入s3的方便方式转换数据帧

我尝试了下面的选项,但我得到了错误,因为df是一个数据帧,它并没有写选项

df.write()
    .format("com.databricks.spark.csv")
    .option("header", "true")
    .save("123.csv");

在Spark中运行此程序时,一种方法是将Pandas数据帧转换为Spark数据帧,然后将其保存到S3

下面的代码片段创建
pdf
Pandas数据帧,并将其转换为
df
Spark数据帧

import numpy as np
import pandas as pd

# Create Pandas DataFrame
d = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
     'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
pdf = pd.DataFrame(d)

# Convert Pandas DataFrame to Spark DataFrame
df = spark.createDataFrame(pdf)
df.printSchema()
为了验证,我们还可以打印Spark数据帧的模式,输出如下

root
 |-- one: double (nullable = true)
 |-- two: double (nullable = true)
现在它是一个Spark数据帧,您可以使用
Spark csv
包保存文件,如下例所示

# Save Spark DataFrame to S3
df.write.format('com.databricks.spark.csv').options(header='true').save('123.csv')

在Spark中运行此程序时,一种方法是将Pandas数据帧转换为Spark数据帧,然后将其保存到S3

下面的代码片段创建
pdf
Pandas数据帧,并将其转换为
df
Spark数据帧

import numpy as np
import pandas as pd

# Create Pandas DataFrame
d = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
     'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
pdf = pd.DataFrame(d)

# Convert Pandas DataFrame to Spark DataFrame
df = spark.createDataFrame(pdf)
df.printSchema()
为了验证,我们还可以打印Spark数据帧的模式,输出如下

root
 |-- one: double (nullable = true)
 |-- two: double (nullable = true)
现在它是一个Spark数据帧,您可以使用
Spark csv
包保存文件,如下例所示

# Save Spark DataFrame to S3
df.write.format('com.databricks.spark.csv').options(header='true').save('123.csv')

也许像这样的事情会让你有一个好的开始:将它写入缓冲区会很好地工作。注意,您不必为了写入s3而将其写入硬盘。事实上,
to_csv()
put_object
似乎都支持非常高效的缓冲区。也许这样的事情会让你有一个好的开始:将它写入缓冲区会很好地工作。注意,您不必为了写入s3而将其写入硬盘。事实上,
to_csv()
put_object
似乎都支持非常有效的缓冲区。