当前位置: 首页 > 知识库问答 >
问题:

如何在用Spark编写时更改csv文件名?

何飞翰
2023-03-14
from pyspark.sql import *
from IPython.core.display import display, HTML

display(HTML("<style>.container { width:100% !important; }</style>"))

spark = SparkSession \
    .builder \
    .appName("Python Spark SQL basic example") \
    .config("spark.some.config.option") \
    .getOrCreate()
    
df = spark.read.csv("../work/data2/*.csv", inferSchema=True, header=False)

df.createOrReplaceTempView("iris")
result = spark.sql("select * from iris where _c1 =2 order by _c0 ")
summary=result.describe(['_c10'])
summary.show()
summary.coalesce(1).write.csv("202003/data1_0331.csv")
"202003/data1_0331.csv/part-00000-3afd3298-a186-4289-8ba3-3bf55d27953f-c000.csv
202003/data1_0331.csv
cannot resolve '`0`' given input columns

共有1个答案

家志学
2023-03-14

不能控制写火花操作输出的名称。

但是,您始终可以对其进行重命名:

from py4j.java_gateway import java_import

java_import(spark._jvm, 'org.apache.hadoop.fs.Path')

fs = spark._jvm.org.apache.hadoop.fs.FileSystem.get(spark._jsc.hadoopConfiguration())

list_status = fs.listStatus(spark._jvm.org.apache.hadoop.fs.Path(CSVPath))

file_name = [file.getPath().getName() for file in list_status if file.getPath().getName().startswith('part-')][0]

print(file_name)

fs.rename(sc._jvm.Path(CSVPath+''+file_name), sc._jvm.Path(CSVPath+"data1_0331.csv"))

这段代码将列出输出路径中的所有文件,查找以part-开头的文件,并将它们重命名为所需的名称。

 类似资料:
  • 我正在尝试将一组csv文件加载到数据库中。解析文件和输入数据都非常有效。。。。。除了一些文件编码给我带来麻烦。 文件工作正常,大多数文件都是这种格式。然而,有些文件在中,这些文件不能正确加载。 是否有方法检查文件本身的编码,并在使用数据之前转换编码?我一直在玩和,但这些都以字符串作为输入。我宁愿检查文件并立即转换,而不是在接收数据时逐行检查。 非常感谢。

  • 问题内容: 我试图在Windows计算机上使用Python 3.2编写一个简单的CSV文件,但是我没有运气。从Python 3.2 的csv模块文档中: 产生一个文件,该文件的每一行都以字节序列结尾,因此当您使用MS Excel等打开文件时,每行看起来都有一个多余的空行。这不是“ CSV文件”。 请注意,如果我在Python 3.2中尝试相同的Python 2.7示例(最大的区别在于文件模式与vs

  • 问题内容: 我有一个脚本(使用PhantomJS),用于测试加载网页需要多长时间。我要弄清楚的是如何写将页面加载到.csv文件所花费的时间结果。然后,如果我要重新运行测试,以将另一个结果添加到.csv文件中。 码: 问题答案: 您可以将fs模块与附加模式下的方法一起使用。 其中,文件路径是字符串,是包含CSV行的字符串。 就像是:

  • 我在PHP中有一个CSV字符串,它被mb_detect_编码检测为UTF8。此字符串将写入文件。当我在文本编辑器(程序员记事本)中打开它时,编辑器会说它是UTF8无标记的,当我将编码更改为ANSI时,它会在Excel中正确打开。我想用ANSI编写这个文件,这样在Excel中打开它之前就不必在文本编辑器中进行转换。尝试使用以下命令: utf8_解码($xhtml) iconv(“UTF-8”、“Wi

  • 假设是Spark中的一个数据文件。将写入单个CSV文件的方法是 任何帮助都很感激。