在Pyspark数据框中访问嵌套列

10

我有一个XML文档,看起来像这样:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Position>
    <Search>
        <Location>
            <Region>OH</Region>
            <Country>us</Country>
            <Longitude>-816071</Longitude>
            <Latitude>415051</Latitude>
        </Location>
    </Search>
</Position>

我将它读入数据框架:

df = sqlContext.read.format('com.databricks.spark.xml').options(rowTag='Position').load('1.xml')

我能看到1列:

df.columns
['Search']

print df.select("Search")
DataFrame[Search: struct<Location:struct<Country:string,Latitude:bigint,Longitude:bigint,Region:string>>]

如何访问嵌套的列,例如 "Location.Region"?


你能否发布一行你所获取的数据框的样本数据。 - Gaurav Dhama
这非常有帮助,谢谢。 - lakshmi
1个回答

14

您可以像以下这样做:

df.select("Search.Location.*").show()

输出:

+-------+--------+---------+------+
|Country|Latitude|Longitude|Region|
+-------+--------+---------+------+
|     us|  415051|  -816071|    OH|
+-------+--------+---------+------+

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接