val path="/volumes/data/bigdata_code/data/retail-data/by-day/2010-12-01.csv"
spark.read.format("csv").option("header", "true").option("inferschema", "true")
.load(path)
//方法1
val sourcedf = spark.read.option("delimiter", "\t").schema(sourceschema).format("csv").load(output)
//方法2
// val sourcerdd =
// sc
// .textfile(output, 20)
// .map(_.split("\t"))
// .filter(_.length==8)
// .map(splits => )
// val sourcedf =sourcerdd
// .todf("key", "fpdn", "date", "ip", "iplong", "requentcnt", "firstseen", "lastseen")
注意分隔符:不同的檔案可能會有不同的分隔符。在spark.read中預設的分隔符為『,』逗號。如果是其他的需要自己設定:
val sourcedf = spark.read.option("delimiter", "\t") //使用delimiter設定成『\t'
.schema(sourceschema).format("csv").load(output)
這裡使用的是delimiter。
如果是方法2,直接textfile的line直接split("\t")
spark 讀寫scv檔案遇到換行問題
val data spark.read.option header true option inferschema true option multiline true option delimiter format csv load hdfs hadoop master 9000 datasour...
Spark讀取檔案
spark預設讀取的是hdfs上的檔案。如果讀取本地檔案,則需要加file usr local spark readme.md。測試時候發現,本地檔案必須在spark的安裝路徑內部或者平行 讀取hdfs檔案,可以這樣指定路徑 hdfs ns1 tmp test.txt。如果不指定任何字首,則使用hd...
Spark讀取檔案
spark預設讀取的是hdfs上的檔案。如果讀取本地檔案,則需要加file usr local spark readme.md。測試時候發現,本地檔案必須在spark的安裝路徑內部或者平行 讀取hdfs檔案,可以這樣指定路徑 hdfs ns1 tmp test.txt。如果不指定任何字首,則使用hd...