任何人都知道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小时后仍在写入......)
基本上,当你调用其中之一时,它们是完全相同的。但在你的实现中是不同的
使用 DF1,您添加inferSchema选项,它会减慢该过程,这解释了为什么 DF1 比第二个花费更多时间
inferSchema:自动推断列类型。它需要对数据进行一次额外的传递,默认情况下为 false, 详细文档
| 归档时间: |
|
| 查看次数: |
4406 次 |
| 最近记录: |