Spark查詢多字元分隔符hive表時遇到的問題

2021-09-29 10:19:06 字數 1064 閱讀 9882

首先要引入建立多分隔符hive表時的jar包,hive-contrib-3.1.0.3.0.0.0-1634.jar

然而使用spark-shell --jars ***/hive-contrib-3.1.0.3.0.0.0-1634.jar引入jar包後查詢多分隔符hive表時仍然提示classnotfound異常,提示類找不到,在命令列界面試下使用class.forname載入該jar包時又沒有提示找不到該類的異常,說明類應該是載入到類路徑下了。

之後修改日誌級別為:debug級別,檢視更加詳細的內容,查到了在找該類時是使用isolatedclientloader這個類載入器載入的,同時還分成custom defining、hive class等幾種類。

spark.sql.hive.metastore.barrierprefixes=org.apache.hadoop.hive.contrib.serde2.multidelimitserde加到啟動引數中:

spark-shell --master local[4] --conf spark.sql.hive.metastore.barrierprefixes=org.apache.hadoop.hive.contrib.serde2.multidelimitserde --jars xx/hive-contrib-3.1.0.3.0.0.0-1634.jar
ok,查詢成功!最後就是不知道**可以控制isolationon這個引數。isolationon預設是開啟的,只要關閉了,就會直接使用baseclassloader類載入器,這樣就不用設定多餘引數了

不知道是否有更簡潔的方法

Hive建表時指定分隔符或使用多字元分隔

不知道你是否會有會這樣的苦惱,就是從hdfs或者file中匯入資料到hive建數倉的時候,因為資料是資料流前段的小gg用特殊符號分隔的,然後導致你匯入資料時一臉矇圈?這篇教程可能會幫到你。首先我們明確,我們是在建表的時候就指定了匯入資料時的分隔符的,建表的時候會有三種場景需要考慮 1 正常建表 de...

Oracle 根據分隔符分隔字串

為了讓pl sql 函式返回資料的多個行 必須通過返回乙個 ref cursor 或乙個資料集合來完成 ref cursor 的這種情況侷限於可以從查詢中選擇的資料 而整個集合在可以返回前 必須進行具體化 oracle 9i 通過引入的管道化表函式糾正了後一種情況 表函式是返回整個行的集 通常作為乙...

Spark實戰練習02 處理分隔符

一 場景 devicestatus.txt 檔案包含了來自於不同運營商的移動裝置的資料,不同的資料格式,包括裝置id 當前狀態 位置等等。注意,該檔案中的記錄具有不同的字段分隔符 一些使用逗號,一些使用管道 等等。二 任務 提取date 第乙個字段 model 第二個字段 devive id 第三字...