尝试按通用类型对浏览器平台进行分组,而不是按每个单独的版本。
An error occurred while calling o73.sql.
: org.apache.spark.sql.catalyst.parser.ParseException:
mismatched input 'BrowserPlatform' expecting <EOF>(line 2, pos 10)
这是我通常在语法稍微关闭时得到的错误,所以我知道我在这里错过了一些东西。你能指出来吗?
spark.sql(""" SELECT
CASE WHEN BrowserPlatform IN 'iOS%' THEN 'iOS'
WHEN BrowserPlatform IN '%Android%' THEN 'Android'
WHEN BrowserPlatform IN '%iPad%' THEN 'iPad'
WHEN BrowserPlatform IN '%iPhone%' THEN 'iPhone'
ELSE BrowserPlatform
END AS GenericBrowserPlatform
FROM DATA
""").createOrReplaceTempView('Test')
BrowserPlatform | GenericBrowserPlatform | iPhone, iOS 14道明> |
---|---|
iOS 14道明> | |
Android | |
Android | |
iPhone, iOS 13 | iPhone |
在这里回答我自己的问题,以防对别人有所帮助。
LIKE代替IN解决问题