Sql Scala Spark仅读取特定列下的最后一行
如何修改下面的代码以仅获取表中的最后一行,特别是Sql Scala Spark仅读取特定列下的最后一行,sql,scala,apache-spark,pyspark,Sql,Scala,Apache Spark,Pyspark,如何修改下面的代码以仅获取表中的最后一行,特别是键列下的值?原因是,这是一个巨大的表,我需要最后一行,特别是键值,来知道到目前为止它加载了多少。我不在乎还有什么其他内容 第1行: val df = spark.sqlContext.read.format("datasource").option("project", "character").option("apiKey", "xx").option("type", "tables").option("batchSize", "10000").
键
列下的值?原因是,这是一个巨大的表,我需要最后一行,特别是键值,来知道到目前为止它加载了多少。我不在乎还有什么其他内容
第1行:
val df = spark.sqlContext.read.format("datasource").option("project", "character").option("apiKey", "xx").option("type", "tables").option("batchSize", "10000").option("database", "humans").option("table", "healthGamma").option("inferSchema", "true").option("inferSchemaLimit", "1").load()
第2行:
df.createTempView("tables")
第3行:
spark.sqlContext.sql("select * from tables").repartition(1).write.option("header","true").parquet("lifes_remaining")
您可以在这样的数据框中使用orderBy,希望能有所帮助:
df.orderBy($"value".desc).show(1)
键列类型是什么?您只需要按升序排列最后一个键吗?@LiorChaga它是值,整数形式的数字。在第2行之后添加它不会影响第2行的结果。你可以这样做:
df.orderBy($“value”.desc.).limit(1).write.option(“header”,“true”).parquet(“lifes_剩余”)
@LiorChaga为什么我们按值而不是键
列订购。还有其他值列也有int
value必须复制粘贴@YashShah reply。是的,它应该按键列。我刚才给出了一个写“value”的例子。你应该使用“key”@YashShah。该列表在数据库中已经排序,我只需要key
列中最后一行的值。我不想迭代这个表,我希望它只给出最后一行的值,这可能吗?