最近遇到需求要從hive表中讀取資料,並且要遍歷每一行的資料,網上找了很多資料都沒有解釋的很清晰的,這邊記錄一下。
1. 首先spark讀取hive表,得到dataframe。
如果直接對spark的dataframe進行遍歷的話,需要進行collect操作,這對效能消耗是非常大的,一般不建議直接對dataframe進行collect操作。
2. 將dataframe轉為rdd。
轉為rdd是方便進行map等運算元操作,這個時候可以進行遍歷操作。
3. 如果有需要將遍歷的結果再次寫入hive表,則可以將rdd轉為dataframe。
import org.apache.spark.broadcast.broadcast
import org.apache.spark.rdd.rdd
import org.apache.spark.sql.
object getinfo ).todf()
//3. 將新的結果寫入hive表
resultdf.createtempview("tmp_table")
spark.sql(
"insert overwrite table table_***xx select * from tmp_table")
}}
pandas按行按列遍歷Dataframe
dataframe.iterrows 按行遍歷,將dataframe的每一行迭代為 index,series 對,可以通過row name 對元素進行訪問。dataframe.itertuples 按行遍歷,將dataframe的每一行迭代為元祖,可以通過row name 對元素進行訪問,比iter...
DataFrame學習二 DataFrame的性質
2.1 索引 切片 資料集 data frame2 pd.dataframe data,index one two three four five columns year state pop debt 返回一列資料 frame2 year 返回多列多行 返回兩行 frame2 two three ...
DataFrame學習一 DataFrame的建立
1.1 概要 dataframe是一種 型資料結構,它含有一組有序的列,每列可以是不同的值。dataframe的行索引是index,列索引是columns 建立方式 根據dict進行建立,以及讀取csv或者txt檔案來建立 1.2 字典建立 資料集 data frame pd.dataframe d...