SQL通配符-我错过了什么?



尝试按通用类型对浏览器平台进行分组,而不是按每个单独的版本。

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')
tbody> <<tr>Android 10Android 11
BrowserPlatformGenericBrowserPlatform
iPhone, iOS 14道明>
iOS 14道明>
Android
Android
iPhone, iOS 13iPhone

在这里回答我自己的问题,以防对别人有所帮助。

LIKE代替IN解决问题

最新更新