Python spark中不同的读取选项有什么不同?

Python spark中不同的读取选项有什么不同?,python,csv,apache-spark,pyspark,apache-spark-sql,Python,Csv,Apache Spark,Pyspark,Apache Spark Sql,我正在通过以下代码读取csv文件:- from pyspark.sql import SparkSession spark = SparkSession.builder \ .master("local[2]") \ .getOrCreate() 现在有四个不同的选项可以阅读: df=spark.read.load(“/…../xyz.csv”) df=spark.read.csv(“/…../xyz.csv”) df=spark

我正在通过以下代码读取csv文件:-

    from pyspark.sql import SparkSession
    spark = SparkSession.builder \
            .master("local[2]") \
            .getOrCreate()
现在有四个不同的选项可以阅读:

  • df=spark.read.load(“/…../xyz.csv”)
  • df=spark.read.csv(“/…../xyz.csv”)
  • df=spark.read.format('csv').load(“/…../xyz.csv”)
  • df=spark.read.option().csv(“/…../xyz.csv”)
  • 我应该使用哪个选项

    编辑:-


    此外,
    inferSchema=“true”
    inferSchema=true
    都在工作。我们可以盲目地使用任何一个吗?

    2
    3
    是等价的

    3
    允许附加的
    选项(键、值)
    函数(请参见
    4
    ,或
    spark.read.format('csv')。选项(…).load()
    ),该选项允许您跳过标题行,或设置逗号以外的分隔符,例如

    1
    不分析CSV


    我建议
    inferSchema=True
    ,以防止字符串值中的拼写错误

    2
    3
    是等效的

    3
    允许附加的
    选项(键、值)
    函数(请参见
    4
    ,或
    spark.read.format('csv')。选项(…).load()
    ),该选项允许您跳过标题行,或设置逗号以外的分隔符,例如

    1
    不分析CSV

    我建议
    inferSchema=True
    来防止字符串值中的输入错误2是3的缩写。 1默认读取拼花文件

    例如: spark.read.csv()只调用.format(“csv”).load(“path”)

    你用哪一个都不重要。(2,3,4)正如我说的,1默认读拼花地板。

    2是3的allias。 1默认读取拼花文件

    例如: spark.read.csv()只调用.format(“csv”).load(“path”)


    不管你用哪一个。(2,3,4)正如我说的,我默认阅读拼花地板。

    谢谢@cricket\u 007!谢谢@cricket_007!谢谢你,亚历山大先生!谢谢你,亚历山大先生!
    def load(self, path=None, format=None, schema=None, **options):
            """Loads data from a data source and returns it as a :class`DataFrame`.
    
            :param path: optional string or a list of string for file-system backed data sources.
            :param format: optional string for format of the data source. Default to 'parquet'.
            :param schema: optional :class:`pyspark.sql.types.StructType` for the input schema
                           or a DDL-formatted string (For example ``col0 INT, col1 DOUBLE``).
            :param options: all other string options 
    
      @scala.annotation.varargs
      def csv(paths: String*): DataFrame = format("csv").load(paths : _*)