pyspark参考:spark.read.format("csv") 与 spark.read.csv 的性能差异
我以为我需要.options("inferSchema" , "true")并.option("header", "true")打印我的标题,但显然我仍然可以用标题打印我的 csv。
标头和架构有什么区别?我不太明白“inferSchema:自动推断列类型。它需要额外传递一次数据,默认情况下为 false”的含义。
任何人都知道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")
Run Code Online (Sandbox Code Playgroud)
我之所以研究这个问题是因为我需要在过滤后对2个数据帧进行联合,然后写回hdfs,并且花了很长时间来写入(16小时后仍在写入......)