2017-02-15 84 views
2

我有一个XML文件,看起来像这样:在pyspark数据帧Acessing嵌套列

<?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>>] 

如何访问嵌套列。 ex Location.Region?

+0

你能后,你得到的数据帧的样本一行。 –

+0

这是非常有用的谢谢你 – lakshmi

回答

4

你可以做一些象下面这样:

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

输出:

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