Redshift 有没有办法从一个文本块中提取所有 URL,每个 URL 都作为单独的行?
Posted
技术标签:
【中文标题】Redshift 有没有办法从一个文本块中提取所有 URL,每个 URL 都作为单独的行?【英文标题】:Is there a way in Redshift to extract all URLs from a block of text each as a separate row? 【发布时间】:2019-02-20 21:48:44 【问题描述】:我正在尝试从可能包含 0、1 或大量 URL 的文本块中提取特定格式的所有 URL。
例如,一行可能有以下值:
'一些文字 blahblahblah.com 更多文字 secondwebsite.com 更多测试'
我希望在我的输出中表示为两行:
'blahblahblah.com'
'secondwebsite.com'
我可以使用REGEXP_SUBSTR
和SPLIT_PART
来获取第一个.com
事件,但理想情况下我可以分别提取所有事件。有没有办法做到这一点?
【问题讨论】:
【参考方案1】:从单个输入行返回多个输出行在 SQL 中并不容易。
您需要交叉连接到一个数字表(例如,一个包含包含1, 2, 3...
的行的表,然后使用该数字来引用输入行的单独部分。
底线:有可能,但很混乱。尝试找到实现此目的的替代方法。
【讨论】:
哦,我明白了——这听起来很乱但仍然可行,如果我最终需要这样做,我会使用它!非常感谢!【参考方案2】:如果你想从具有多个 URL 的字段中创建单独的行,这在 SQL 中通常是不可行的,我建议你使用 ETL 工具或一些脚本语言如 python 来做到这一点。
【讨论】:
啊,好吧,我希望有办法,但我太新手了,不知道!感谢您的输入:)以上是关于Redshift 有没有办法从一个文本块中提取所有 URL,每个 URL 都作为单独的行?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法通过 OCR 从图像中提取文本?任何人都好心推荐例子..谢谢