Select pyspark 中 RDD 的子字符串
Select substring from an RDD in pyspark
我是 运行 pyspark,来自 python3,目前我有一个 RDD cities
[u'California - LA', u'Memphis, TN', u'', u'London, England', u'', u'', u'Ohio', u'Burlington, Ontario, Canada', u'', u'', u'North Carolina', u'Wisner, LA', u'', u'', u'Beverly Hills, CA', u'Toronto, Ontario, Canada', u'United States', u'', u'', u'', u'Mineola, AR', u'Washington', u'Dubai UAE', u'Morris Plains, NJ', u'Nevada, MO', u'', u'', u'Georgia', u'New York, NY [Spanish Harlem]', u'Newark, NJ', u'Chicago', u'Brandon', u'Queens, NY', u'Beaumont, TX', u'Houston, TX', u'', u'San Antonio, TX', u'', u'', u'', u'California - LA', u'Detroit, MI', u'London, England', u'', u'Chapel Hill, NC', u'Oxford, MS', u'Dallas, TX', u'', u'', u'Berlin, Germany', u'New York, NY', u'Sao Paulo, Brazil', u'South Jamaica, Queens', u'Los Angeles, CA', u'', u'Middlesbrough, England', u'', u'London, England', u'Egremont, Cumbria, England', u'Garnant, Wales', u'California - SF', u'', u'Melbourne, Australia', u'Nashville, Tennessee', u'', u'', u'Berkeley, CA', u'', u'', u'AUSTRALIA', u'', u'', u'Jamaica, West Indies', u'Pasadena, CA', u'Los Angeles, CA', u'Cleveland, OH', u'', u'', u'New York, NY', u'', u'Minnesota', u'Norway', u'FR', u'Delight, AR', u'Humboldt, TN', u'Tampa, FL', u'CA', u'', u'Birmingham, AL', u'Manchester, England', u'', u'', u'', u'B\xe9zu, comme Superdupont, ne connait qu'un pays : la France !', u'Newark, NJ', u'', u'New York, NY', u'', u'Aarhus, Denmark', u'Sicily Island, LA']
我想要一个新的 RDD,只用状态名称而不是 City - State
,
公共分隔符将是 ,[space] [word]',
之前的一个词
我的 lambda 函数会是什么样子
怎么样:
re.findall("[A-Za-z]+", "Toronto, Ontario, Canada", 0)[1]
'Ontario'
re.findall("[A-Za-z]+", "California - LA", 0)[1]
'LA'
这基本上是找到仅由字母组成的单词并输出列表中的第二个元素。
我是 运行 pyspark,来自 python3,目前我有一个 RDD cities
[u'California - LA', u'Memphis, TN', u'', u'London, England', u'', u'', u'Ohio', u'Burlington, Ontario, Canada', u'', u'', u'North Carolina', u'Wisner, LA', u'', u'', u'Beverly Hills, CA', u'Toronto, Ontario, Canada', u'United States', u'', u'', u'', u'Mineola, AR', u'Washington', u'Dubai UAE', u'Morris Plains, NJ', u'Nevada, MO', u'', u'', u'Georgia', u'New York, NY [Spanish Harlem]', u'Newark, NJ', u'Chicago', u'Brandon', u'Queens, NY', u'Beaumont, TX', u'Houston, TX', u'', u'San Antonio, TX', u'', u'', u'', u'California - LA', u'Detroit, MI', u'London, England', u'', u'Chapel Hill, NC', u'Oxford, MS', u'Dallas, TX', u'', u'', u'Berlin, Germany', u'New York, NY', u'Sao Paulo, Brazil', u'South Jamaica, Queens', u'Los Angeles, CA', u'', u'Middlesbrough, England', u'', u'London, England', u'Egremont, Cumbria, England', u'Garnant, Wales', u'California - SF', u'', u'Melbourne, Australia', u'Nashville, Tennessee', u'', u'', u'Berkeley, CA', u'', u'', u'AUSTRALIA', u'', u'', u'Jamaica, West Indies', u'Pasadena, CA', u'Los Angeles, CA', u'Cleveland, OH', u'', u'', u'New York, NY', u'', u'Minnesota', u'Norway', u'FR', u'Delight, AR', u'Humboldt, TN', u'Tampa, FL', u'CA', u'', u'Birmingham, AL', u'Manchester, England', u'', u'', u'', u'B\xe9zu, comme Superdupont, ne connait qu'un pays : la France !', u'Newark, NJ', u'', u'New York, NY', u'', u'Aarhus, Denmark', u'Sicily Island, LA']
我想要一个新的 RDD,只用状态名称而不是 City - State
,
公共分隔符将是 ,[space] [word]',
之前的一个词
我的 lambda 函数会是什么样子
怎么样:
re.findall("[A-Za-z]+", "Toronto, Ontario, Canada", 0)[1]
'Ontario'
re.findall("[A-Za-z]+", "California - LA", 0)[1]
'LA'
这基本上是找到仅由字母组成的单词并输出列表中的第二个元素。