StructType的注意事項

2021-10-03 18:49:17 字數 1318 閱讀 5138

val schema = structtype(

list(

structfield("1",integertype,true)

//....n個字段。。。

))

structtype( ) 中可以放list、seq

structfield( )

原始碼:

case class structfield(

name: string,

datatype: datatype,

nullable: boolean = true,

metadata: metadata = metadata.empty) {}

乙個structtype物件,可以有多個structfield,同時它也可以用名字(name)來提取,與map可以用key來提取value一樣,但是他structtype提取的是整條欄位的資訊。

// 使用spark-core操作

val countsdf = logsdf.rdd.map(row =>).reducebykey(_+_).map(x=>(x._1._1,x._1._2,x._2.todouble)).map(row.fromtuple(_))

val schema = structtype(

list(

structfield("province",stringtype,true),

structfield("city",stringtype,true),

structfield("cts",doubletype,true)))

spark.createdataframe(countsdf,schema)

.repartition(1)

如果不使用row.from***直接在第乙個map中row(x,y,z)

會導致報錯:列名對應不上,不能直接這樣子row多個資料

直接不使用row

會導致無法過載createdataframe方法

// 使用spark-core操作

val countsdf = logsdf.rdd.map(row =>).reducebykey(_+_).map(x=>(x._1._1,x._1._2,x._2)

val schema = seq("province","city","cts")

spark.createdataframe(countsdf)

.todf(schema1:_*)

.repartition(1)

使用此方法需要保證rdd中的列數一定要和schema對應

java DOM 注意事項

1.w3c把標籤內的文字部分也定義成乙個node 2.element物件代表的是xml文件中的標籤元素 繼承於node,亦是node的最主要的子物件 3.attr實際上是包含在element中的,它並不能被看作是element的子物件,因而在dom中attr並不是dom樹的一部分,所以node中的 ...

static注意事項

static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...

CSS注意事項

一 寬度 高度 對齊方式請別忘記他們 只要你時刻記得 div css 不變形的秘密你已經掌握了 90 也有對齊方式哦!一定要掌握當 對齊方式不同是 布局出現的問題!左右左 能不變形嗎?預設 是要換行的哦 div css的 居中對齊 是有條件的哦 所有當同級元素的對齊方式都為居中對齊的時候可以採用居中...