在字串公式中就是乙個」()「就表示乙個結構體
//建立結構體
//方法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...