apache-spark - 重命名写入的 CSV 文件 Spark

标签 apache-spark amazon-s3 apache-spark-sql spark-dataframe

我正在运行 spark 2.1,我想将包含结果的 csv 写入 Amazon S3。 重新分区后,csv 文件的名称有点神秘,我想将其更改为特定的文件名。

我正在使用数据 block 库写入 S3。

dataframe
    .repartition(1)
    .write
    .format("com.databricks.spark.csv")
    .option("header", "true")
    .save("folder/dataframe/")

有没有办法事后重命名文件甚至直接用正确的名称保存?我已经在寻找解决方案,但没有找到太多。

谢谢

最佳答案

您可以使用下面的命令重命名输出文件。

dataframe.repartition(1).write.format("com.databricks.spark.csv").option("header", "true").save("folder/dataframe/")

import org.apache.hadoop.fs._

val fs = FileSystem.get(sc.hadoopConfiguration)

val filePath = "folder/dataframe/"
val fileName = fs.globStatus(new Path(filePath+"part*"))(0).getPath.getName

fs.rename(new Path(filePath+fileName), new Path(filePath+"file.csv"))

关于apache-spark - 重命名写入的 CSV 文件 Spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44760244/

相关文章:

hadoop - 当网络连接(TCP IP)关闭时如何停止 Spark Streaming 上下文?

amazon-web-services - 在 AWS S3 受让人列表中添加所有者名称

apache-spark - SparkSQL/配置单元 : equivalent of MySQL's `information_schema.table.{data_length, table_rows}` ?

python - 通过在 python (pyspark) 中使用 combinebykey spark rdd 计算组上的聚合

java - Spark group按问题

python - 如何在 PySpark 中删除 RDD 以释放资源?

amazon-s3 - s3 对象的 Glacier 检索通知

security - 尝试访问 iframe 内容(不同的子域);尝试设置 CORS

apache-spark - 在S3中将大型Spark Dataframe保存为单个json文件

apache-spark - Pyspark udf 对于不带参数的函数失败,但对于不带参数的 lambda 有效