我需要創建一個表,將查詢與我們在內容中定位的一組關鍵字連接起來。Google 搜索表是對博客的搜索查詢和印象,關鍵字表是內部創建的關鍵字表和我們分配給它們的值 (1-10)。我需要加入這兩個才能獲得基于關鍵字的印象。
類似于這個虛擬代碼的東西
select a.*, b.*
from google_search_table a
left join Keyword_Table b
on contains(a.query, b.keyword)
谷歌搜索表
| 詢問 | 印象 |
|---|---|
| 最薄荷牙膏 | 8274 |
| 最好的沐浴皂 | 4375 |
| 如何煮西紅柿 | 1734 |
| 最柔軟的衛生紙 | 892 |
| 頂級叢林工藝技能 | 9284 |
關鍵字表
| 關鍵詞 | 價值 |
|---|---|
| 牙膏 | 2 |
| 肥皂 | 5 |
| 番茄 | 3 |
| 衛生紙 | 3 |
預期結果表
| 關鍵詞 | 印象 |
|---|---|
| 牙膏 | 8274 |
| 肥皂 | 4375 |
| 番茄 | 1734 |
| 衛生紙 | 892 |
| 空值 | 9284 |
uj5u.com熱心網友回復:
這是解決您問題的 SQL。
SELECT *
from ( select Keyword, Impressions
from google_search_table
lateral view explode(split(Query,' ')) t1 as Keyword ) a
where
a.Keyword is in (select Keyword from Keyword_Table)
如果這表現合理,那就很好用了。我假設關鍵字表很小。
如果它炸毀了記憶體堆疊,您可能需要查看某種型別的廣播連接或地圖側連接。
uj5u.com熱心網友回復:
我建議嘗試 pyspark/spark
resultTable = google_search_table.join(Keyword_Table, google_search_table.Query.contains(Keyword_Table.Keyword), how='left')
您可以在此處查看其他人如何使用 pyspark解決類似問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/330069.html
