我有以下结构的json文件:
{"names":[{"name":"John","lastName":"Doe"},
{"name":"John","lastName":"Marcus"},
{"name":"David","lastName":"Luis"}
]}
我想阅读几个这样的json文件,并根据" name"来区分它们。列内的名字。 我试过了
df.dropDuplicates(Array("names.name"))
但它没有做到这一点。
答案 0 :(得分:1)
这似乎是火花2.0中添加的回归。如果将嵌套列置于最高级别,则可以删除重复项。如果我们根据您要进行重复数据删除的列创建新列。然后我们放下柱子,最后放下柱子。以下功能也适用于复合键。
if test -d apache2 && if test -d www2
答案 1 :(得分:0)
仅供将来参考,解决方案看起来像
val uniqueNams = allNames.withColumn("DEDUP_NAME_KEY",
org.apache.spark.sql.functions.explode(new Column("names.name")))
.cache()
.dropDuplicates(Array("DEDUP_NAME_KEY"))
.drop("DEDUP_NAME_KEY")