- 读取clickhouse数据库数据
importscala.collection.mutable.ArrayBufferimportjava.util.Propertiesimportorg.apache.spark.sql.SaveModeimportorg.apache.spark.sql.SparkSessiondef 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
的功能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]>
> 的形式返回一行或多行数据。>> first>
> 和>> head>
> 功能相同。>> take>
> 和>> takeAsList>
> 方法会将获得到的数据返回到Driver端,所以,使用这两个方法时需要注意数据量,以免Driver发生>> OutOfMemoryError>
本文转载自: https://blog.csdn.net/qq_35240081/article/details/136421437
版权归原作者 音乐学家方大刚 所有, 如有侵权,请联系我们删除。
版权归原作者 音乐学家方大刚 所有, 如有侵权,请联系我们删除。