将 Spark Dataframe 拆分为每一行并转换为 JSON - Python

Split Spark Dataframe to each row and convert to JSON - Python

我是 Spark 的新手,正在尝试尽可能多地阅读和研究。目前我坚持这个,我花了几天时间来解决。我已经在 3 台机器(1 台主机,2 台从机)和 运行 一些示例上成功设置了 Spark 集群。现在我正在尝试编写一个 Python 应用程序,它将读取 csv 文件,然后将每一行拆分为 JSON 文件并将它们全部上传到 S3。这是我的问题:

  1. 我已经使用 SparkSession.read.csv() 将 csv 转换为 Spark DataFrame,如何将此 DataFrame 拆分为多行并转换为 JSON?我读过 Spark DataFrame 具有 toJSON 函数,但该函数适用于整个 DataFrame,那么如何在 DataFrame 的每一行而不是整行上使用 thi 函数?

  2. 如何在我的应用程序中应用分布式系统,假设我有 2 个奴隶和一个主人?还是我的应用程序会自动将工作分成更小的部分并分配给从属?

  3. 如何将转换后的 JSON 放入 S3,一些示例代码指导将对我有最大帮助。

如果您能帮助我,我将不胜感激,在此先感谢您的帮助。

  1. 要读取 json 个文件,您可以使用 sqlContext.jsonFile()。您可以使用常规 SQL 查询进行处理。您可以从更多信息中看到here
  2. spark 适用于分区。您的数据将在执行程序上分为分区和 运行。根据您使用的模式,这将由 spark 采取。不确定您是否使用 YARN。
  3. 在python中,可以使用boto3将数据保存到amazon s3。它是一个非常易于使用的包。看here