-
读取clickhouse数据库数据
scalaimport scala.collection.mutable.ArrayBuffer import java.util.Properties import org.apache.spark.sql.SaveMode import org.apache.spark.sql.SparkSession def getCKJdbcProperties( batchSize: String = "100000", socketTimeout: String = "300000", numPartitions: String = "50", rewriteBatchedStatements: String = "true"): Properties = { val properties = new Properties properties.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的功能[ckDF.show](http://ckDF.show)默认展示前20个记录ckDF.show(3)指定展示记录数ckDF.show(false)是否展示前20个ckDF.show(3, 0)截取记录数
-
**ckDF.collect** 方法会将ckDF中的所有数据都获取到,并返回一个Array对象 -
ckDF.collectAsList功能和collect类似,只不过将返回结构变成了List对象 -
**ckDF.describe**("ip_src").show(3)****获取指定字段的统计信息scalascala> ckDF.describe("ip_src").show(3) +-------+------+ |summary|ip_src| +-------+------+ | count|855035| | mean| null| | stddev| null| +-------+------+ only showing top 3 rows -
first, head, take, takeAsList获取若干行记录first获取第一行记录head获取第一行记录,head(n: Int)获取前n行记录take(n: Int)获取前n行数据takeAsList(n: Int)获取前n行数据,并以List的形式展现
以
Row或者Array[Row]的形式返回一行或多行数据。first和head功能相同。take和takeAsList方法会将获得到的数据返回到Driver端,所以,使用这两个方法时需要注意数据量,以免Driver发生OutOfMemoryError
【Hadoop】在spark读取clickhouse中数据
方大刚2332024-03-06 11:28
相关推荐
yumgpkpm9 小时前
Cloudera CDH、CDP、Hadoop大数据+决策模型及其案例num_killer11 小时前
小白的Spark初识(RDD)鲨莎分不晴13 小时前
大数据的“数字金库”:HDFS 核心原理与操作指令全解鲨莎分不晴13 小时前
给 Hadoop 插上 SQL 的翅膀:Apache Hive 架构与实战全解德彪稳坐倒骑驴13 小时前
Hive电商数据分析项目 过程记录红队it13 小时前
【Spark+Hadoop】基于spark+hadoop游戏评论数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅yumgpkpm13 小时前
华为 GaussDB 商业版(本地部署)部署方案及相关步骤oMcLin13 小时前
如何在CentOS 8上配置并调优Apache Spark集群,确保大规模数据分析任务的高效运行与资源分配?独自归家的兔13 小时前
Ambari与Bigtop深度解析:大数据集群管理与生态标准化利器俊哥大数据13 小时前
【项目9】 基于Spark网站流量日志大数据实时分析系统