`format()`在pyspark中加载数据时做了什么

时间:2017-03-06 14:18:16

标签: apache-spark pyspark

我开始使用spark并且经常在从云加载数据时,我看到以下代码

my_sdf = spark.read.format("com.databricks.spark.csv").option("delimiter", ' ').load("s3n://myfolder/data/xyz.txt")

我的问题如下:这里似乎有两个数据集:一个是com.databricks.spark.csv,因为它是一个csv文件吗?另一个数据集是xyz.txt,因为它是txt文件。那么在这个命令中,我正在加载哪个数据集?我试验自己,似乎正在加载xyz.txt数据集。但后来我的问题是com.databricks.spark.csv做了什么?特别是它放在format()中。是否尝试使用与数据集xyz.txt相同的格式判断spark会加载数据集com.databricks.spark.csv

1 个答案:

答案 0 :(得分:0)

代码下面的表格: -

my_sdf = spark.read.format("com.databricks.spark.csv").option("delimiter", ' ').load("s3n://myfolder/data/xyz.txt")

数据集为s3n://myfolder/data/xyz.txt

Format是您需要从中读取数据集的格式名称s3n://myfolder/data/xyz.txt

pyspark < 1.6没有任何csv format因此需要databricks format: com.databricks.spark.csv。如果您的输入数据采用parquet or orc or json等任何其他格式,那么您需要使用parquet or orc or json代替com.databricks.spark.csv

  

基本上格式是保存数据的结构。