我的数据是在csv
文件。该文件还没有得到任何标题列
United States Romania 15
United States Croatia 1
United States Ireland 344
Egypt United States 15
如果我读它,Spark
创建自动的列名。
scala> val data = spark.read.csv("./data/flight-data/csv/2015-summary.csv")
data: org.apache.spark.sql.DataFrame = [_c0: string, _c1: string ... 1 more field]
是否有可能读取文件时,如果我不希望使用_c0
,_c1
为列提供我自己的名字?对于如我想spark
使用DEST
,ORIG
和count
列名。我不希望添加在csv
标题行做到这一点
是的,你可以,有一种方法,您可以我们toDF
数据框的功能。
val data = spark.read.csv("./data/flight-data/csv/2015-summary.csv").toDF("DEST", "ORIG", "count")
最好是先定义模式(StructType
),然后使用模式加载CSV数据。
下面是如何定义的模式:
import org.apache.spark.sql.types._
val schema = StructType(Array(
StructField("DEST",StringType,true),
StructField("ORIG",StringType,true),
StructField("count",IntegerType,true)
))
加载数据框:
val df = spark.read.schema(schema).csv("./data/flight-data/csv/2015-summary.csv")
希望它会帮助你。