国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

關(guān)于黑馬hive課程案例FineBI中文亂碼的解決

這篇具有很好參考價(jià)值的文章主要介紹了關(guān)于黑馬hive課程案例FineBI中文亂碼的解決。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

問題描述

  • 情況1:FineBI導(dǎo)入表名中文亂碼,字段內(nèi)容正常
  • 情況2:FineBI導(dǎo)入表字段中文亂碼,表名內(nèi)容正常

情況一的解決

  1. 使用navcat等工具連接node1 mysql數(shù)據(jù)庫,執(zhí)行下列代碼,修改相關(guān)字符集格式
  2. 執(zhí)行的時(shí)機(jī)準(zhǔn)備數(shù)據(jù)表階段和清洗數(shù)據(jù)階段都可,需在完成需求生成結(jié)果表之前
-- 在Hive的MySQL元數(shù)據(jù)庫中執(zhí)行
use hive;
-- 1.修改字段注釋字符集
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
-- 2.修改表注釋字符集
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
-- 3.修改分區(qū)表參數(shù),以支持分區(qū)鍵能夠用中文表示
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
-- 4.修改索引注解
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

情況二的解決

  • 如果出現(xiàn)字段中文亂碼,但是通過dataGrip等工具查看表數(shù)據(jù)中文正常顯示,那么就是FineBI連接hive時(shí)設(shè)置編碼utf-8導(dǎo)致出現(xiàn)的問題!
  • 設(shè)置連接信息編碼為自動(dòng)即可
    關(guān)于黑馬hive課程案例FineBI中文亂碼的解決,大數(shù)據(jù)修煉之旅,hive,hadoop,python

ETL數(shù)據(jù)清洗知識

  • ETL:
    • E,Extract,抽取
    • T,Transform,轉(zhuǎn)換
    • L,Load,加載
  • 從A抽取數(shù)據(jù)(E),進(jìn)行數(shù)據(jù)轉(zhuǎn)換過濾(T),將結(jié)果加載到B(L),就是ETL
  • 針對大數(shù)據(jù)中的TEL數(shù)據(jù)清洗,可以利用分布式計(jì)算框架、并行處理、數(shù)據(jù)采樣、數(shù)據(jù)質(zhì)量檢查等方法,確保數(shù)據(jù)的質(zhì)量和準(zhǔn)確性。為了滿足實(shí)時(shí)需求,還可以使用流式處理框架。重要的是根據(jù)具體的需求和數(shù)據(jù)特點(diǎn)選擇合適的方法和技術(shù)。

社交案例參考代碼

-- 創(chuàng)建數(shù)據(jù)庫
create database db_msg;
-- 選擇數(shù)據(jù)庫
use db_msg;
-- 如果表已存在就刪除
drop table if exists db_msg.tb_msg_source ;
-- 建表
create table db_msg.tb_msg_source(
         msg_time string comment "消息發(fā)送時(shí)間",
         sender_name string comment "發(fā)送人昵稱",
         sender_account string comment "發(fā)送人賬號",
         sender_sex string comment "發(fā)送人性別",
         sender_ip string comment "發(fā)送人ip地址",
         sender_os string comment "發(fā)送人操作系統(tǒng)",
         sender_phonetype string comment "發(fā)送人手機(jī)型號",
         sender_network string comment "發(fā)送人網(wǎng)絡(luò)類型",
         sender_gps string comment "發(fā)送人的GPS定位",
         receiver_name string comment "接收人昵稱",
         receiver_ip string comment "接收人IP",
         receiver_account string comment "接收人賬號",
         receiver_os string comment "接收人操作系統(tǒng)",
         receiver_phonetype string comment "接收人手機(jī)型號",
         receiver_network string comment "接收人網(wǎng)絡(luò)類型",
         receiver_gps string comment "接收人的GPS定位",
         receiver_sex string comment "接收人性別",
         msg_type string comment "消息類型",
         distance string comment "雙方距離",
         message string comment "消息內(nèi)容"
);

-- 上傳數(shù)據(jù)到HDFS(Linux命令)
--hadoop fs -mkdir -p /chatdemo/data
--hadoop fs -put chat_data-30W.csv /chatdemo/data/

-- 加載數(shù)據(jù)到表中,基于HDFS加載
load data inpath '/chatdemo/data/chat_data-30W.csv' into table tb_msg_source;

-- 驗(yàn)證數(shù)據(jù)加載
select * from tb_msg_source tablesample(100 rows);
-- 驗(yàn)證一下表的數(shù)量
select count(*) from tb_msg_source;

--問題1:當(dāng)前數(shù)據(jù)中,有一些數(shù)據(jù)的字段為空,不是合法數(shù)據(jù)
select *
from tb_msg_source
where length(sender_gps)=0;
--問題2∶需求中,需要統(tǒng)計(jì)每天、每個(gè)小時(shí)的消息量,但是數(shù)據(jù)中沒有天和小時(shí)字段,只有整體時(shí)間字段,不好處理
select msg_time from tb_msg_source limit 10;
--問題3:需求中,需要對經(jīng)度和維度構(gòu)建地區(qū)的可視化地圖,但是數(shù)據(jù)中GPS經(jīng)緯度為一個(gè)字段,不好處理
select sender_gps from tb_msg_source limit 10;

--需求
--需求1:對字段為空的不合法數(shù)據(jù)進(jìn)行過濾 where
--需求2:通過時(shí)間字段構(gòu)建天和小時(shí)字段 date hour
--需求3:從GPS的經(jīng)緯度中提取經(jīng)度和緯度 split()
--需求4:將ETL以后的結(jié)果保存在一張新的Hive表中

drop table if exists db_msg.tb_msg_etl;
--ETL清洗轉(zhuǎn)換(Extract 抽取, Transform 轉(zhuǎn)換,Load 加載)
create table db_msg.tb_msg_etl(
          msg_time string comment "消息發(fā)送時(shí)間",
          sender_name string comment "發(fā)送人昵稱",
          sender_account string comment "發(fā)送人賬號",
          sender_sex string comment "發(fā)送人性別",
          sender_ip string comment "發(fā)送人ip地址",
          sender_os string comment "發(fā)送人操作系統(tǒng)",
          sender_phonetype string comment "發(fā)送人手機(jī)型號",
          sender_network string comment "發(fā)送人網(wǎng)絡(luò)類型",
          sender_gps string comment "發(fā)送人的GPS定位",
          receiver_name string comment "接收人昵稱",
          receiver_ip string comment "接收人IP",
          receiver_account string comment "接收人賬號",
          receiver_os string comment "接收人操作系統(tǒng)",
          receiver_phonetype string comment "接收人手機(jī)型號",
          receiver_network string comment "接收人網(wǎng)絡(luò)類型",
          receiver_gps string comment "接收人的GPS定位",
          receiver_sex string comment "接收人性別",
          msg_type string comment "消息類型",
          distance string comment "雙方距離",
          message string comment "消息內(nèi)容",
          msg_day string comment "消息日",
          msg_hour string comment "消息小時(shí)",
          sender_lng double comment "經(jīng)度",
          sender_lat double comment "緯度"
);

INSERT OVERWRITE TABLE db_msg.tb_msg_etl
SELECT
    *,
    DATE(msg_time) AS msg_day,
    HOUR(msg_time) AS msg_hour,
    SPLIT(sender_gps, ',')[0] AS sender_lng,
    SPLIT(sender_gps, ',')[1] AS sender_lat
FROM db_msg.tb_msg_source
WHERE LENGTH(sender_gps) > 0;

--需求
-- 1.統(tǒng)計(jì)今日總消息量
create table if not exists tb_rs_total_msg_cnt
    comment '每日消總量' AS
select msg_day,count(*) AS total_msg_cnt
from tb_msg_etl group by msg_day;

-- 2.統(tǒng)計(jì)今日每小時(shí)消息量、發(fā)送和接收用戶數(shù)
create table if not exists tb_rs_hours_msg_cnt
comment "每小時(shí)消息量趨勢" AS
    select
        msg_hour,
        count(*) as total_msg_cnt,
        count(DISTINCT sender_account) as sender_usr_cnt,
        count(DISTINCT receiver_account) as receiver_usr_cnt
    from tb_msg_etl group by msg_hour;

-- 3.統(tǒng)計(jì)今日各地區(qū)發(fā)送消息數(shù)據(jù)量
create table if not exists tb_rs_loc_cnt
comment "今日各地區(qū)發(fā)送消息總量" AS
    select
        msg_day,
        sender_lng,
        sender_lat,
        count(*) as total_msg_cnt
    from tb_msg_etl
    group by msg_day,sender_lng,sender_lat;
-- 4.統(tǒng)計(jì)今日發(fā)送消息和接收消息的用戶數(shù)
create table if not exists tb_rs_usr_cnt
comment "今日發(fā)送消息和接收消息的用戶數(shù)" AS
select
    msg_day,
    count(distinct sender_account) as sender_user_cnt,
    count(distinct receiver_account) as receiver_user_cnt
from tb_msg_etl
group by msg_day;
-- 5.統(tǒng)計(jì)今日發(fā)送消息最多的Top10用戶
create table if not exists tb_rs_user_sender_msg_top10
    comment "今日發(fā)送消息最多的Top10用戶" AS
select
    sender_name,
    count(*) as sender_msg_cnt
from tb_msg_etl
group by sender_name
order by sender_msg_cnt desc
limit 10;
-- 6.統(tǒng)計(jì)今日接收消息最多的Top10用戶
create table if not exists tb_rs_user_receiver_msg_top10
    comment "今日接收消息最多的Top10用戶" AS
select
    receiver_name,
    count(*) as receiver_msg_cnt
from tb_msg_etl
group by receiver_name
order by receiver_msg_cnt desc
limit 10;
-- 7.統(tǒng)計(jì)發(fā)送人的手機(jī)型號分布情況
create table if not exists tb_rs_sender_phone_type
comment '發(fā)送人手機(jī)型號' as
select
    sender_phonetype,
    count(*) as cnt
from tb_msg_etl
group by sender_phonetype;
-- 8.統(tǒng)計(jì)發(fā)送人的設(shè)備操作系統(tǒng)分布情況
create table if not exists tb_rs_sender_phone_os
    comment '發(fā)送人手機(jī)操作系統(tǒng)' as
select
    sender_os,
    count(*) as cnt
from tb_msg_etl
group by sender_os;

結(jié)果展示

關(guān)于黑馬hive課程案例FineBI中文亂碼的解決,大數(shù)據(jù)修煉之旅,hive,hadoop,python
關(guān)于黑馬hive課程案例FineBI中文亂碼的解決,大數(shù)據(jù)修煉之旅,hive,hadoop,python文章來源地址http://www.zghlxwxcb.cn/news/detail-705715.html

到了這里,關(guān)于關(guān)于黑馬hive課程案例FineBI中文亂碼的解決的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • CDH 之 Hive 中文亂碼平定通用法則

    CDH 之 Hive 中文亂碼平定通用法則

    ???????? 實(shí)際上以上方式都不能解決編碼問題,根本原因并不出在 hive 上,而是存儲(chǔ) hive 元數(shù)據(jù)的 mysql 數(shù)據(jù)庫上面 2.3.1 修改hive元數(shù)據(jù)庫編碼 (1)查看hive元數(shù)據(jù)庫編碼(顯示:utf8mb3) (2) 修改編碼為 latin1 2.3.2 修改表編碼 (1)查看hive庫中有哪些表 (2)需要修改如下

    2024年02月12日
    瀏覽(15)
  • 【微信小程序(黑馬程序課程)案例實(shí)現(xiàn)——本地生活的首頁基本布局】

    【微信小程序(黑馬程序課程)案例實(shí)現(xiàn)——本地生活的首頁基本布局】

    一. 新建一個(gè)項(xiàng)目 二. 添加頁面和刪除頁面 (1) 添加頁面 ——app.json/pages中添加路徑,并刪除原有的路徑 (2)刪除頁面——路徑已經(jīng)被刪除,現(xiàn)在刪除文件 三.設(shè)置導(dǎo)航欄效果 ——app.json/windows中更改 效果圖: 代碼如下: 四.設(shè)置tabBar效果 ——在app.json中創(chuàng)建tabBar(與win

    2024年04月16日
    瀏覽(36)
  • 【正在更新】【最新!黑馬程序員Python自學(xué)課程筆記】課上筆記+案例源碼+作業(yè)源碼

    1.1字面量 1.2注釋 1.3變量 debug工具的使用 1.對著某行代碼 打斷點(diǎn) 2.下方一步步 步進(jìn) 1.4數(shù)據(jù)類型 1.5數(shù)據(jù)類型轉(zhuǎn)換 錯(cuò)誤示例 1.6標(biāo)識符 變量的命名規(guī)范: 1.見名知意,簡潔; 2.(多個(gè)單詞)用下劃線命名法 3.英文字母全小寫 1.7運(yùn)算符 1.8字符串的三種定義方式 1.9字符串的拼接

    2024年01月21日
    瀏覽(88)
  • 關(guān)于微信小程序與Java后臺(tái)交互數(shù)據(jù)中中文亂碼問題的討論

    關(guān)于微信小程序與Java后臺(tái)交互數(shù)據(jù)中中文亂碼問題的討論

    如果小程序端發(fā)起的請求參數(shù)中含有中文,直接發(fā)送到后臺(tái)會(huì)顯示亂碼,需要在header中設(shè)置UTF-8編碼 這樣后臺(tái)接收到的中文就能解析正常了 為了便于測試,后臺(tái)接口簡化如下: 結(jié)果小程序端顯示的用戶名為“寮犱笁”。 起初懷疑后臺(tái)返回的編碼格式不對,網(wǎng)上說對于Spring

    2024年02月09日
    瀏覽(24)
  • 中文數(shù)字對照表--課后程序(Python程序開發(fā)案例教程-黑馬程序員編著-第4章-課后作業(yè))

    中文數(shù)字對照表--課后程序(Python程序開發(fā)案例教程-黑馬程序員編著-第4章-課后作業(yè))

    阿拉伯?dāng)?shù)字因其具有簡單易寫、方便使用的特點(diǎn)成為了最流行的數(shù)字書寫方式,但在使用阿拉伯?dāng)?shù)字計(jì)數(shù)時(shí),可以對某些數(shù)字不漏痕跡的修改成其它數(shù)字,例如,將數(shù)字“1”修改為數(shù)字“7”,將數(shù)字“3”修改為數(shù)字“8”。為了避免引起不必要的麻煩,可以使用中文大寫數(shù)字

    2024年02月05日
    瀏覽(91)
  • Hive 表注釋亂碼解決

    Hive 表注釋亂碼解決

    出現(xiàn)原因 一般 Hive 的元數(shù)據(jù)信息都存儲(chǔ)在 MySQL 中,但 MySQL 數(shù)據(jù)庫中的 character_set_server 和 character_set_database 參數(shù),默認(rèn)都為 latin1 字符集,這兩個(gè)參數(shù)決定了服務(wù)器和數(shù)據(jù)庫如何處理和存儲(chǔ)數(shù)據(jù)的字符編碼,而我們通常使用的字符集都是 utf8 ,所以會(huì)造成 Hive 中注釋出現(xiàn) ??

    2024年02月09日
    瀏覽(20)
  • VScode注釋中文時(shí)亂碼怎么辦?VScode中文注釋亂碼問題的解決方法

    VScode注釋中文時(shí)亂碼怎么辦?VScode中文注釋亂碼問題的解決方法

    不管是在哪一種編輯器上,都會(huì)有自動(dòng)默認(rèn)的一種編碼格式,在vscode編輯器中默認(rèn)的編碼格式是utf-8,但是在注釋的時(shí)候,因?yàn)槭褂玫淖址麜?huì)不一樣,所以可能存在著默認(rèn)的配置文件,有可能是其他的編碼格式,所以因?yàn)榫幋a格式不對應(yīng),導(dǎo)致了在注釋的時(shí)候出現(xiàn)了亂碼的情

    2024年02月11日
    瀏覽(19)
  • 關(guān)于git推送代碼到github遠(yuǎn)程倉庫中文亂碼問題,visual studio保存文件默認(rèn)編碼格式問題

    關(guān)于git推送代碼到github遠(yuǎn)程倉庫中文亂碼問題,visual studio保存文件默認(rèn)編碼格式問題

    中文亂碼問題本質(zhì)上的原因是:二者的編碼格式不同 。當(dāng)你用GB2313格式保存一個(gè)文件,用utf-8的格式打開,它必然就顯示亂碼。 據(jù)我所知,github上面是utf-8,而visual studio默認(rèn)保存為GB2312,把代碼推送到github上面看,中文部分就是亂碼。 用 高級保存選項(xiàng) 來設(shè)置保存操作的編碼

    2024年04月11日
    瀏覽(33)
  • ubuntu解決中文亂碼

    1、查看當(dāng)前系統(tǒng)使用的字符編碼 ~$ locale LANG=en_US LANGUAGE=en_US: LC_CTYPE=\\\"en_US\\\" LC_NUMERIC=\\\"en_US\\\" LC_TIME=\\\"en_US\\\" LC_COLLATE=\\\"en_US\\\" LC_MONETARY=\\\"en_US\\\" LC_MESSAGES=\\\"en_US\\\" LC_PAPER=\\\"en_US\\\" LC_NAME=\\\"en_US\\\" LC_ADDRESS=\\\"en_US\\\" LC_TELEPHONE=\\\"en_US\\\" LC_MEASUREMENT=\\\"en_US\\\" LC_IDENTIFICATION=\\\"en_US\\\" LC_ALL= 2、查看當(dāng)前系統(tǒng)支持的字符集

    2023年04月19日
    瀏覽(12)
  • Qt中文亂碼解決辦法

    1. QT4版本 中文亂碼解決辦法是在main.cpp文件加入: Windows 系統(tǒng)里一般的記事本、編輯器、VC++ 開發(fā)環(huán)境等都是默認(rèn)用 GBK 漢字編碼,而 Linux 和 Qt 都是默認(rèn)用 UTF-8 國際文字編碼,所以文本顯示亂碼一般都是這個(gè)原因。 2. QT5版本 Qt5版本之后,類 QTextCodec 已經(jīng)取消了 QTextCodec::se

    2024年02月05日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包