Amazon s3 从集群将整数/字符串写入pyspark中的文本文件

Amazon s3 从集群将整数/字符串写入pyspark中的文本文件,amazon-s3,pyspark,amazon-emr,Amazon S3,Pyspark,Amazon Emr,我使用EMR阶跃函数来分析数据。 我想存储分析数据帧的计数,以决定是否可以将其保存为csv或拼花地板。我更喜欢CSV,但如果尺寸太大,我将无法下载并在笔记本电脑上使用它。 我使用count()方法将其存储到int变量limit 当我尝试使用以下代码时: coalesce(1).write.format("text").option("header", "false").mode("overwrite").save("output.txt") 它说: int没有任何名为write的属性 有没有一

我使用EMR阶跃函数来分析数据。 我想存储分析数据帧的计数,以决定是否可以将其保存为csv或拼花地板。我更喜欢CSV,但如果尺寸太大,我将无法下载并在笔记本电脑上使用它。 我使用
count()
方法将其存储到int变量
limit
当我尝试使用以下代码时:

coalesce(1).write.format("text").option("header", "false").mode("overwrite").save("output.txt")
它说:

int没有任何名为write的属性

有没有一种方法可以将整数或字符串写入一个文件,这样我就可以在s3存储桶中打开它,并在EMR步骤运行后进行检查

更新: 我尝试了@Shu建议的dataframe方法,但得到了以下错误

原因:org.apache.spark.sparkeException:作业因阶段而中止 失败:阶段13.0中的任务0失败4次,最近一次失败: 第13.0阶段的任务0.3丢失(TID 19396,ip-10-210-13-34.ec2.1), 执行者11):org.apache.spark.SparkException:任务在执行时失败 写行。在 org.apache.spark.sql.execution.datasources.FileFormatWriter$.org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask(FileFormatWriter.scala:257) 在 org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1.apply(FileFormatWriter.scala:170)


产生这种情况的根本原因是什么?

您可以
并行化int变量以创建
rdd
,然后使用
.saveAsTextFile
写入HDFS

df.show()
#+---+
#| _1|
#+---+
#|  a|
#|  b|
#+---+
limit=df.count()
spark.sparkContext.parallelize([limit]).coalesce(1).saveAsTextFile("<path>")

#content of file
#cat <path>/part-00000
#2 

我试图将其转换为数据帧并写入,但一直失败。我没有使用
IntegerType()
方法。非常感谢你!
from pyspark.sql.types import *
spark.createDataFrame(spark.sparkContext.parallelize([limit]),IntegerType()).coalesce(1).write.format("csv").option("header", "false").mode("overwrite").save("<path>")

#or in text format
spark.createDataFrame(spark.sparkContext.parallelize([limit]),StringType()).coalesce(1).write.format("text").mode("overwrite").save("<path>")

#cat part-*
#2