原创 Sqoop命令

1、Sqoop Import (進入官網)  

原创 spark-sql性能優化之——動態實現多個列應用同一個函數

  在對一個dataframe的多個列實現應用同一個函數時,是否能動態的指定? 例如: 對A,B,C三列實現分組統計 1.初始化spark,構建DF val spark = SparkSession.builder() .a

原创 Spark實現行列轉換pivot和unpivot

背景 做過數據清洗ETL工作的都知道,行列轉換是一個常見的數據整理需求。在不同的編程語言中有不同的實現方法,比如SQL中使用case+group,或者Power BI的M語言中用拖放組件實現。今天正好需要在pyspark中處理一個數據行列

原创 Spark中廣播變量詳解以及如何動態更新廣播變量

【前言:Spark目前提供了兩種有限定類型的共享變量:廣播變量和累加器,今天主要介紹一下基於Spark2.4版本的廣播變量。先前的版本比如Spark2.1之前的廣播變量有兩種實現:HttpBroadcast和TorrentBroadcas

原创 Spark Yarn 調度器Scheduler詳解

一、調度器的選擇 在Yarn中有三種調度器可以選擇:FIFO Scheduler,Capacity Scheduler,FairS cheduler。 FIFO Scheduler把應用按提交的順序排成一個隊列,這是一個先進先出隊列,在進

原创 Address already in use: Service 'SparkUI' failed after 16 retries (starting from 4040)!

Address already in use: Service 'SparkUI' failed after 16 retries (starting from 4040)! Consi der explicitly setting th

原创 Spark任務傾斜解決方案

任務傾斜 一、Spark推測執行spark.speculation(謹慎使用) task傾斜原因比較多,網絡io,cpu,mem都有可能造成這個節點上的任務執行緩慢,可以去看該節點的性能監控來分析原因。以前遇到過同事在spark的一臺wo

原创 spark sql insert 報錯 Container killed on request. Exit code is 143

Caused by: org.apache.spark.SparkException: Job aborted due to stage failure: Task 198 in stage 4.0 failed 4 times, mo

原创 Spark Mllib中LinearRegression參數含義

1.相關參數設置: <1> setMaxIter():設置最大迭代次數 <2> setRegParam(): 設置正則項的參數,控制損失函數與懲罰項的比例,防止整個訓練過程過擬合 <3> setElasticNetParam():使用L1

原创 sqoop hcatalog數據導出

將分區表中的數據導入mysql 創建mysql表 create table if not exists test.test_product_id (     product_id bigint(11) comment "商品ID",  

原创 sqoop導出的數據到sqlserver數據精度確實問題解決方案

業務場景: 1.使用spark建立數據pipeline,保存數據有float,業務需要4爲小數,類型爲float 問題描述: hive表中數據類型爲float 1.hive表中float類型數據在spark中計算中精度缺失; 2.通過sq

原创 spark導數據到sqlserver

spark數據處理完後,如果結果需要輸出到sql database,可以使用spark sql dataframe並引入微軟的數據庫jdbc驅動輸出數據,具體步驟如下:   1:引入微軟的jdbc jar包 在項目的pom文件加入下面的依

原创 callUDF使用

callUDF用與將sql註冊的UDF轉爲外部DataFrame可見 import org.apache.spark.sql.SparkSession import org.apache.spark.sql.functions._

原创 Hive常用修改命令

Alter Table 語句 Hive修改表名,列名,列註釋,表註釋,增加列,調整列順序,屬性名等操作 它是在Hive中用來修改的表。語法 聲明接受任意屬性,我們希望在一個表中修改以下語法。   ALTER TABLE name R

原创 Hive之行轉列-合併多列-列轉行

行轉列:collect_list(不去重)    collect_set(去重) 它們都是將分組中的某列轉爲一個數組返回,不同的是collect_list不去重而collect_set去重 concat_ws(',',collect_se