【Hadoop】在spark讀取clickhouse中數據

  • 讀取clickhouse數據庫數據

    import scala.collection.mutable.ArrayBuffer
    import java.util.Properties
    import org.apache.spark.sql.SaveMode
    import org.apache.spark.sql.SparkSessiondef getCKJdbcProperties(batchSize: String = "100000",socketTimeout: String = "300000",numPartitions: String = "50",rewriteBatchedStatements: String = "true"): Properties = {val properties = new Propertiesproperties.put("driver", "ru.yandex.clickhouse.ClickHouseDriver")properties.put("user", "default")properties.put("password", "數據庫密碼")properties.put("batchsize", batchSize)properties.put("socket_timeout", socketTimeout)properties.put("numPartitions", numPartitions)properties.put("rewriteBatchedStatements", rewriteBatchedStatements)properties}
    // 讀取click數據庫數據
    val today = "2023-06-05"
    val ckProperties = getCKJdbcProperties()
    val ckUrl = "jdbc:clickhouse://233.233.233.233:8123/ss"
    val ckTable = "ss.test"
    var ckDF = spark.read.jdbc(ckUrl, ckTable, ckProperties)
    
  • **show** 展示數據,類似于select * from test的功能

    1. [ckDF.show](http://ckDF.show) 默認展示前20個記錄
    2. ckDF.show(3) 指定展示記錄數
    3. ckDF.show(false) 是否展示前20個
    4. ckDF.show(3, 0) 截取記錄數
  • **ckDF.collect** 方法會將 ckDF中的所有數據都獲取到,并返回一個Array對象

  • ckDF.collectAsList 功能和collect類似,只不過將返回結構變成了List對象

  • **ckDF.describe**("ip_src").show(3) ****獲取指定字段的統計信息

    scala> ckDF.describe("ip_src").show(3)
    +-------+------+                                                                
    |summary|ip_src|
    +-------+------+
    |  count|855035|
    |   mean|  null|
    | stddev|  null|
    +-------+------+
    only showing top 3 rows
    
  • first, head, take, takeAsList 獲取若干行記錄

    1. first獲取第一行記錄
    2. head獲取第一行記錄,head(n: Int)獲取前n行記錄
    3. take(n: Int)獲取前n行數據
    4. takeAsList(n: Int)獲取前n行數據,并以List的形式展現

    Row或者Array[Row]的形式返回一行或多行數據。firsthead功能相同。taketakeAsList方法會將獲得到的數據返回到Driver端,所以,使用這兩個方法時需要注意數據量,以免Driver發生OutOfMemoryError

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714684.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714684.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714684.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

IOS 發布遇到“Unable to authenticate with App Store Connect”錯誤咋解決?

問題: 在開發ios app后,先發布adhoc版本,測試通過后,再發布testflight版本測試,但是可能會遇到一下問題。 解決辦法: 在Signing &Capabilities中,在ios下邊要指定有發布權限的Team賬號&a…

PAT (Basic Level) Practice | 判斷題

判斷題的評判很簡單,本題就要求你寫個簡單的程序幫助老師判題并統計學生們判斷題的得分。 輸入格式 輸入在第一行給出兩個不超過 100 的正整數 N 和 M,分別是學生人數和判斷題數量。第二行給出 M 個不超過 5 的正整數,是每道題的滿分值。第…

pytorch基礎2-數據集與歸一化

專題鏈接:https://blog.csdn.net/qq_33345365/category_12591348.html 本教程翻譯自微軟教程:https://learn.microsoft.com/en-us/training/paths/pytorch-fundamentals/ 初次編輯:2024/3/2;最后編輯:2024/3/2 本教程…

迪杰斯特拉算法的具體應用

fill與memset的區別介紹 例一 #include <iostream> #include <algorithm> using namespace std; const int maxn500; const int INF1000000000; bool isin[maxn]{false}; int G[maxn][maxn]; int path[maxn],rescue[maxn],num[maxn]; int weight[maxn]; int cityn…

【深度學習數學基礎】Hebbian圖(Hebbian Graph)

Hebbian圖&#xff08;Hebbian Graph&#xff09;是一種基于神經科學原理的網絡結構&#xff0c;它受到唐納德赫布&#xff08;Donald Hebb&#xff09;提出的赫布學習規則&#xff08;Hebb’s rule&#xff09;的啟發。赫布學習規則是神經科學中描述神經元之間突觸連接如何通過…

模板方法模式 詳解 設計模式

模板方法模式 模板方法模式是一種行為型設計模式&#xff0c;它定義了一個算法的骨架&#xff0c;將一些步驟延遲到子類中實現。這種模式允許子類在不改變算法結構的情況下重新定義算法的某些步驟。 結構 抽象類&#xff08;Abstract Class&#xff09;&#xff1a;負責給出一…

JavaWeb老杜視頻筆記總結,Servlet-JSP

關于直播 什么時間直播&#xff1f; 晚上8:00到10:00 每周直播幾天&#xff1f; 3天&#xff08;周一、周三、周五&#xff09; 本周比較特殊&#xff1a;周四周五周六三天直播&#xff0c;從下周開始就是一三五直播。 直播什么內容&#xff1f; 從JavaWEB開始。&#xff08…

《深入淺出紅黑樹:一起動手實現自平衡的二叉搜索樹》

一、分析 1. 紅黑樹的性質 紅黑樹是一種自平衡的二叉搜索樹&#xff0c;它具有以下五個性質&#xff1a; &#xff08;1&#xff09;節點是紅色或黑色。 &#xff08;2&#xff09;根節點是黑色。 &#xff08;3&#xff09;所有葉子節點&#xff08;NIL節點&#xff09;是…

探索數據宇宙:深入解析大數據分析與管理技術

?? 歡迎大家來訪Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭?&#xff5e;?? &#x1f31f;&#x1f31f; 歡迎各位親愛的讀者&#xff0c;感謝你們抽出寶貴的時間來閱讀我的文章。 我是Srlua&#xff0c;在這里我會分享我的知識和經驗。&#x…

第六課:NIO簡介

一、傳統BIO的缺點 BIO屬于同步阻塞行IO,在服務器的實現模型為&#xff0c;每一個連接都要對應一個線程。當客戶端有連接請求的時候&#xff0c;服務器端需要啟動一個新的線程與之對應處理&#xff0c;這個模型有很多缺陷。當客戶端不做出進一步IO請求的時候&#xff0c;服務器…

《Spring Security 簡易速速上手小冊》第4章 授權與角色管理(2024 最新版)

文章目錄 4.1 理解授權4.1.1 基礎知識詳解授權的核心授權策略方法級安全動態權限檢查 4.1.2 主要案例&#xff1a;基于角色的頁面訪問控制案例 Demo 4.1.3 拓展案例 1&#xff1a;自定義投票策略案例 Demo測試自定義投票策略 4.1.4 拓展案例 2&#xff1a;使用方法級安全進行細…

【flutter】加載指示器(loading indicator)阻止用戶在某個操作執行期間操作頁面

在Flutter中&#xff0c;通過顯示一個加載指示器&#xff08;loading indicator&#xff09;來阻止用戶在某個操作執行期間操作頁面。以下是一個簡單的示例代碼&#xff0c;演示了按鈕被點擊后執行某操作&#xff0c;在操作完成前顯示加載指示器&#xff0c;阻止用戶操作頁面&a…

c語言數據結構(5)——棧

歡迎來到博主的專欄——C語言數據結構 博主id&#xff1a;代碼小豪 文章目錄 棧棧的順序存儲結構棧的插入空棧的初始化棧的刪除判斷空棧讀取棧頂元素數據 實現順序棧的所有代碼棧的鏈式存儲結構鏈式棧的初始化鏈式棧的入棧操作鏈式棧的出棧操作 實現鏈式棧的所有代碼 棧 棧是…

學習網絡編程No.11【傳輸層協議之UDP】

引言&#xff1a; 北京時間&#xff1a;2023/11/20/9:17&#xff0c;昨天成功更文&#xff0c;上周實現了更文兩篇&#xff0c;所以這周再接再厲。當然做題任在繼續&#xff0c;而目前做題給我的感覺以套路和技巧偏多&#xff0c;還是那句話很多東西不經歷你就是不懂&#xff…

測試人員如何向開發人員準確清晰地描述問題?

測試人員向開發人員準確清晰地描述問題可以采取以下方法&#xff1a; 提供詳細的背景和上下文信息&#xff1a;描述問題發生的環境、前提條件和操作步驟&#xff0c;讓開發人員能夠了解問題出現的場景。明確問題的癥狀和表現&#xff1a;清楚地說明問題的具體表現&#xff0c;…

【Python】2. 基礎語法

常量和表達式 我們可以把 Python 當成一個計算器, 來進行一些算術運算. 注意: print 是一個 Python 內置的 函數, 這個稍后詳細介紹. 可以使用 - * / ( ) 等運算符進行算術運算. 先算乘除, 后算加減. 運算符和數字之間, 可以沒有空格, 也可以有多個空格. 但是一般習慣上寫一…

LDR6328芯片:智能家居時代的小家電充電革新者

在當今的智能家居時代&#xff0c;小家電的供電方式正變得越來越智能化和高效化。 利用PD&#xff08;Power Delivery&#xff09;芯片進行誘騙取電&#xff0c;為后端小家電提供穩定電壓的技術&#xff0c;正逐漸成為行業的新寵。在這一領域&#xff0c;LDR6328芯片以其出色的…

Qt下使用modbus-c庫實現PLC線圈/保持寄存器的讀寫

系列文章目錄 提示&#xff1a;這里是該系列文章的所有文章的目錄 第一章&#xff1a;Qt下使用ModbusTcp通信協議進行PLC線圈/保持寄存器的讀寫&#xff08;32位有符號數&#xff09; 第二章&#xff1a;Qt下使用modbus-c庫實現PLC線圈/保持寄存器的讀寫 文章目錄 系列文章目錄…

前端Vue3項目如何打包成Docker鏡像運行

將前端Vue3項目打包成Docker鏡像并運行包括幾個主要步驟&#xff1a;項目打包、編寫Dockerfile、構建鏡像和運行容器。下面是一個基本的流程&#xff1a; 1. 項目打包 首先&#xff0c;確保你的Vue3項目可以正常運行和打包。在項目根目錄下執行以下命令來打包你的Vue3項目&am…

nest.js使用nest-winston日志一

nest-winston文檔 nest-winston - npm 參考&#xff1a;nestjs中winston日志模塊使用 - 浮的blog - SegmentFault 思否 安裝 cnpm install --save nest-winston winstoncnpm install winston-daily-rotate-file 在main.ts中 import { NestFactory } from nestjs/core; im…