-
读取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
相关推荐
B站计算机毕业设计超人1 小时前
计算机毕业设计SparkStreaming+Kafka旅游推荐系统 旅游景点客流量预测 旅游可视化 旅游大数据 Hive数据仓库 机器学习 深度学习PersistJiao5 小时前
在 Spark RDD 中,sortBy 和 top 算子的各自适用场景Yz98765 小时前
hive的存储格式lzhlizihang5 小时前
python如何使用spark操作hive武子康5 小时前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结武子康5 小时前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本Mephisto.java5 小时前
【大数据学习 | Spark】Spark的改变分区的算子zhixingheyi_tian11 小时前
Spark 之 AggregatePersistJiao11 小时前
Spark 分布式计算中网络传输和序列化的关系(一)爱上口袋的天空14 小时前
09 - Clickhouse的SQL操作