本文篇幅較短,內容源於自己在使用sparksql時碰到的乙個小問題,因為在之後的資料處理過程中多次使用,所以為了加深印象,在此單獨成文,以便回顧。
在使用sparksql進行資料處理時,碰到這樣一種情況:需要更改dataframe當中某個欄位的型別。簡而言之,就是需要更改sparksql的表結構。出於學習的目的,做了乙個簡單的demo。下面來看看這個例項。
......
......
此處省略相關jar包的引入
首先使用sparksql的jsonfile載入hdfs上的乙個檔案(此步在此直接省略了),得到如下的表結構:
scala> dfs.printschema
root
|-- name: string (nullable = true)
|-- desc: string (nullable = true)
|-- click: double (nullable = true)
|-- view: double(nullable = true)
目的:將click
和view
轉成的型別轉成long
。
操作如下:
首先需要定義乙個函式,將表內的`double`型別轉為`long`型別,函式如下:
val tolong = udf[long, double](_.tolong)
然後使用withcolumn
變換字段型別,**如下:
val dfs2 = dfs.withcolumn("click", tolong(dfs("click"))).withcolumn("view", tolong(dfs("view")))
使用printschema
檢視表結構:
scala> dfs2.printschema
root
|-- name : string (nullable = true)
|-- desc : string (nullable = true)
|-- click: long (nullable = true)
|-- view: long (nullable = true)
ok,乙個簡單的表結構變換便完成了,又get了乙個小技巧。 DB 更改表結構
在 3 小節和 2 小節 中都對mysql建立表有個清晰的認識,那麼現在就學習如何更改表結構。一 快速入門 通過乙個例子進行深入理解,這裡a1表結構如下 下面的例子對a1的表結構進行更改 1 新增字段 alter table a1 add column s1 int notnull default ...
Spark Sql之DataFrame實戰詳解
在spark 1.3新加的最重要的新特性之一dataframe的引入,很類似在r語言中的dataframe的操作,使得spark sql更穩定高效。1 dataframe簡介 在spark中,dataframe是一種以rdd為基礎的分布式資料據集,類似於傳統資料庫聽二維 dataframe帶有sch...
oracle 中更改表的結構語句
修改乙個列的資料型別 一般限於修改長度,修改為乙個不同型別時有諸多限制 語法 alter table 表名 modify 列名 資料型別 eg1 alter table skate test modify author number 10,0 在修改列的長度時候,只能編輯比現有字段實際存的長度還要大...