I have a table like this:
+----------------------+
|Country_state |
+----------------------+
| Virginia |
| New Jersey |
| British Columbia |
|Over the North Sea |
| Germany |
| Belgium |
| Germany |
| Bulgeria |
| England |
| England |
| Germany |
| England |
| Belgium |
...
and i need to get countries so i wrote simple udf:
def USA(co):
states = ["Alaska", "Alabama", "Arkansas", "American Samoa", "Arizona", "California", "Colorado", "Connecticut", "District ", "of Columbia", "Delaware", "Florida", "Georgia", "Guam", "Hawaii", "Iowa", "Idaho", "Illinois", "Indiana", "Kansas", "Kentucky", "Louisiana", "Massachusetts", "Maryland", "Maine", "Michigan", "Minnesota", "Missouri", "Mississippi", "Montana", "North Carolina", "North Dakota", "Nebraska", "New Hampshire", "New Jersey", "New Mexico", "Nevada", "New York", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Puerto Rico", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Virginia", "Virgin Islands", "Vermont", "Washington", "Wisconsin", "West Virginia", "Wyoming"]
if co in states:
return "USA"
else:
return co
but this if seems to always be false and i don't know why.
This is how i'm calling it:
usa = udf(USA, StringType())
finalCountry = c. withColumn("CountryFINAL", usa(c.Country_state))