有人知道spark.read.format("csv")和spark.read.csv之间的区别吗?
有些人说"spark.read.csv"是"spark.read.format("csv")"的别名,但我发现这两者之间存在差异。我进行了一次实验,在一个新的pyspark会话中执行了下面的每个命令,以便没有缓存。
DF1花费了42秒,而DF2只花费了10秒。csv文件大小为60+GB。
DF1 = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("hdfs://bda-ns/user/project/xxx.csv")
DF2 = spark.read.option("header", "true").csv("hdfs://bda-ns/user/project/xxx.csv")
我挖掘这个问题的原因是因为我需要在过滤后对两个数据框执行联合操作,然后将其写回到HDFS中,但写入时间非常长(16小时后仍在写入...)。
spark.read.format("csv" if SOMETHING else "ORC").load("path")
会更易读,而不是使用if else来调用spark.read.csv("path")
。 - Duy Nguyen