use*_*601 1 python csv apache-spark apache-spark-sql pyspark
我正在通过以下代码读取 csv 文件:-
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.master("local[2]") \
.getOrCreate()
Run Code Online (Sandbox Code Playgroud)
现在有四种不同的阅读选项:
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例如,允许使用附加option(key, value) 功能(请参阅4或spark.read.format('csv').option(...).load()),该功能可以让您跳过标题行,或设置逗号以外的分隔符。
1不解析 CSV,它使用 Parquet 作为默认格式。
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
Run Code Online (Sandbox Code Playgroud)
我建议inferSchema=True防止字符串值中的拼写错误
2 是 3 的别名。1 默认读取 parquet 文件。
例如:spark.read.csv()只调用.format("csv").load("path")
@scala.annotation.varargs
def csv(paths: String*): DataFrame = format("csv").load(paths : _*)
Run Code Online (Sandbox Code Playgroud)
您使用哪一种并不重要。(2,3,4) 正如我所说,1 默认情况下读取镶木地板。
| 归档时间: |
|
| 查看次数: |
2172 次 |
| 最近记录: |