如何覆盖
当我们节省时间时,RDD 输出对象任何现有路径。
test1:
975078|56691|2.000|20171001_926_570_1322
975078|42993|1.690|20171001_926_570_1322
975078|46462|2.000|20171001_926_570_1322
975078|87815|1.000|20171001_926_570_1322
rdd=sc.textFile('/home/administrator/work/test1').map( lambda x: x.split("|")[:4]).map( lambda r: Row( user_code = r[0],item_code = r[1],qty = float(r[2])))
rdd.coalesce(1).saveAsPickleFile("/home/administrator/work/foobar_seq1")
第一次可以正确保存。现在我再次从输入中删除了一行
文件和保存RDD相同的位置,它表明文件已经存在。
rdd.coalesce(1).saveAsPickleFile("/home/administrator/work/foobar_seq1")
例如,在数据框中我们可以覆盖现有路径。
df.coalesce(1).write().overwrite().save(path)
如果我对 RDD 对象执行相同操作,则会出现错误。
rdd.coalesce(1).write().overwrite().saveAsPickleFile(path)
请帮我解决这个问题
您好,您可以像下面这样保存 RDD 文件Note(代码在 scala 中,但 python 的逻辑也应该相同)我正在使用 2.3.0 Spark 版本。
val sconf = new SparkConf().set("spark.hadoop.validateOutputSpecs", "False").setMaster("local[*]").setAppName("test")
val scontext = new SparkContext(sconf)
val lines = scontext.textFile("s${filePath}", 1)
println(lines.first)
lines.saveAsTextFile("C:\\Users\\...\\Desktop\\sample2")
或者如果您使用 DataFrame 然后使用
DF.write.mode(SaveMode.Overwrite).parquet(path.parquet)
或了解更多信息,请查看
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)