SparkSQL之更改表結構

2021-07-15 11:50:28 字數 1232 閱讀 8176

本文篇幅較短,內容源於自己在使用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)

目的:將clickview轉成的型別轉成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 在修改列的長度時候,只能編輯比現有字段實際存的長度還要大...