Spark對複雜結構的處理

2022-07-12 06:03:10 字數 885 閱讀 4517

在字串公式中就是乙個」()「就表示乙個結構體

//建立結構體

//方法1:

df.selectexpr("(description, invoiceno) as complex", "*").show(2)

//方法2:

df.selectexpr("struct(description, invoiceno) as complex", "*").show(2)

查詢結構體中的資訊使用'.'

我們的陣列通常是dataframe的乙個元素。

下面是一些常用的函式:

//建立map

df.select(map(col("description"), col("invoiceno")).as("map")).show(2)

可以使用key值對value進行查詢,若key值不存在則返回null

//建立map

val mapdf = df.select(map(col("description"), col("invoiceno")).as("map"))

mapdf.selectexpr("map['white metal lantern']").show(2)

//建立map

val mapdf = df.select(map(col("description"), col("invoiceno")).as("map"))

//方法1:

mapdf.selectexpr("explode(map)").show(2)

//方法2:

mapdf.select(explode(col("map"))).show(2)

對Spark的理解

spark作為乙個新的分布式計算引擎正慢慢流行起來,越來越來的企業也準備用它的替換mapreduce,根據自己在工作的一些體會談談的優勢。分布式計算歸根到底還是乙個map和reduce操作,map操作對每個資料塊進行計算,reduce操作對結果進行彙總,現在一些nosql分布式資料庫其實也是這麼一套...

我對DataFrame的理解(Spark)

以下鏈結為spark sql中的dataframe api dataframe 官方說明 在spark中,dataframe是乙個以命名列方式組織的分布式資料集,等同於關係型資料庫中的乙個表,也相當於r python中的data frames 但是進行了更多的優化 dataframes可以由結構化資...

對spark中RDD的理解

update at 2016.1.25 rdd作者的 鏈結 的理解 spark要解決的問題 1 有些資料要多次讀寫,磁碟速度很慢 2 沒有互動的介面,不能看到中間結果 適用的應用 1 機器學習 多個迭代次運算,逼近 優化問題 是不是三維重建中優化也可以用到這個 2 計算結果還要用的 pagerank...