Java 如何在Spark中打印数据帧列的唯一值?
我从拼花文件创建一个数据框,如下所示:Java 如何在Spark中打印数据帧列的唯一值?,java,apache-spark,apache-spark-sql,Java,Apache Spark,Apache Spark Sql,我从拼花文件创建一个数据框,如下所示: DataFrame parquetFile = sqlContext.read().parquet("test_file.parquet"); parquetFile.printSchema(); parquetFile.registerTempTable("myData"); DataFrame data_df = sqlContext.sql("SELECT * FROM myData"); 现在,我想打印出一个名为field1的列的所有唯一值 我知
DataFrame parquetFile = sqlContext.read().parquet("test_file.parquet");
parquetFile.printSchema();
parquetFile.registerTempTable("myData");
DataFrame data_df = sqlContext.sql("SELECT * FROM myData");
现在,我想打印出一个名为field1的列的所有唯一值
我知道在使用Python的情况下,可以将import pandas作为pd运行,然后将数据_df转换为pandas DataFrame,然后使用unique
但是我怎样才能用Java实现呢 您可以通过
parquetFile.dropDuplicates("field1")
这只按字段1提供不同的行。这非常简单,您可以在SQL查询中使用distinct函数
DataFrame data_df = sqlContext.sql("SELECT DISTINCT(field1) FROM myData");
下面是一个例子:
val myData = Seq("h", "h", "d", "b", "d").toDF("field1")
myData.createOrReplaceTempView("myData")
val sqlContext = spark.sqlContext
sqlContext.sql("SELECT DISTINCT(field1) FROM myData").show()
这将提供以下输出:
+------+
|field1|
+------+
| h|
| d|
| b|
+------+
希望有此帮助,最好的RegradsGroupedData无法显示。您可能没有计数:data_df.groupBy'field1'.count.show
+------+
|field1|
+------+
| h|
| d|
| b|
+------+