当我使用SparkSession从postgre表中获取数据时,我必须首先将表加载到DataFrame中,然后通过DataFrame API查询一些数据:
val spark = SparkSession.builder().getOrCreate()
val jdbcDF = spark.read
.format("jdbc")
.option("url", "jdbc:postgresql://192.168.xx.xx:5432/sparktest")
.option("dbtable", "public.ml")
.option("user", "dxy")
.option("password", "123456")
.load()
println(jdbcDF.count())
val sqlDF = jdbcDF.select("f1", "f2")
sqlDF.show()
语句“println(jdbcDF.count())”返回表ml的总数,但如果表ml很大,那么DataFrame jdbcDF也大吗?
我只想查询并从表ml中获取一些特定数据,也就是说,我想将表ml中的部分数据加载到DataFrame jdbcDF中,以便我可以保存内存。
有人可以帮助我并给我一个例子吗?
非常感谢!
答案 0 :(得分:0)
您可以使用limit(<number of rows>)
val jdbcDF = spark.read
.format("jdbc")
.option("url", "jdbc:postgresql://192.168.xx.xx:5432/sparktest")
.option("dbtable", "public.ml")
.option("user", "dxy")
.option("password", "123456")
.limit(10)