我创建拼花文件数据框如下:如何在Spark中打印DataFrame列的唯一值?
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 as pd
,然后将data_df
转换为pandas DataFrame,之后使用unique()
。
但我怎么能在Java中做到这一点?
'从myData'(字段1)选择不同? – philantrovert
@philantrovert:你能否发表你的答案?在大数据集的情况下,您的解决方案可以更好地工作,因为它不会将所有数据加载到数据框中。它选择所需的数据。 – Dinosaurius
有人已经发布了它:D btw,你可以尝试'data_df.select(data_df(“field1))distinct'吗?这不应该加载整个数据,并且可能因为spark内部优化而更快。 – philantrovert