我们在做数据分析时,有时候需要使用join等作表连接,或者说 通过一些数据作关联。

但是 如果需要的数据 是存储的一列中使用逗号分割,或者存储在数组中,就不能很方便的进行表连接。

presto提供了很方便的语法,可以把列转成多行。

场景一 字符串

person表中 多个数据保存在pets使用逗号分割
如下:

select
       name,
from person
namepets
zzqsummer,winter
lyspring,autumn

使用sql如下:

select name,split_pet
FROM person
CROSS JOIN UNNEST(SPLIT(pets,',')) AS t (split_pet)

输出如下:

namesplit_pet
zzqsummer
zzqwinter
lyspring
lyautumn

注意 非规范的字段串 可以使用replace进行处理成规范的字符串

REPLACE(pets, '(', '')

场景二 数组

person表中 多个数据保存在pets使用逗号分割
如下:

select
       name,
from person
namepets
zzq[summer,winter]
ly[spring,autumn]

使用sql如下:

select name,split_pet
FROM person
CROSS JOIN UNNEST(pets) AS t (split_pet)

输出如下:

namesplit_pet
zzqsummer
zzqwinter
lyspring
lyautumn

参考文章:
https://blog.csdn.net/mao15827639402/article/details/108246430
https://blog.csdn.net/lzxlfly/article/details/108458110

我们在做数据分析时,有时候需要使用join等作表连接,或者说 通过一些数据作关联。但是 如果需要的数据 是存储的一列中使用逗号分割,或者存储在数组中,就不能很方便的进行表连接。presto提供了很方便的语法,可以把列转成多行。场景一 字符串person表中 多个数据保存在pets使用逗号分割如下:select name, petsfrom person输出:namepetszzqsummer,winterlyspring,autu 您需要一个安装了Go并设置了$ GOPATH的工作环境。 下载并安装presto数据库/ sql驱动程序: go get github.com/prestodb/presto-go-client/presto 确保已在$ PATH中安装了Git。 该Presto客户端是Go的database/sql/driver接口的实现。 为了使用它,您需 568810800017635002 210100026066367206 568810800017635002 210100026070369019 568810800017635002 210100026038823395 568810800017635002 210100026038921817 568811800170738001 210100016048730468 568811800170738001 sql语句: select 'IP'=substring(a.UserName,b.number,charindex(',',a.UserName+',',b.number)-b.number) from TestRows2Columns a inner join master.dbo.spt_values b on b.numb...
快速用户界面 Presto 应用程序的 Web-UI 组件。 此自述文件将从前端的角度介绍应用程序的功能。 我们将首先定义应用程序中创建的 API 函数以及如何使用它们,然后讨论表单及其输入字段。 运行应用程序: 克隆 repo: git clone git@github.com:rawad663/presto.git 安装应用程序依赖项: npm install 运行应用程序: npm API 调用函数 指定了以下函数以使用 axios 对服务器进行 AJAX 调用: aGet(路线) const aGet = route => axios.get(route); aPost(路由,postData) const aPost = (route, postData_ => axios.post(route, postData); aPut(路线,putData)
PostgreSQL 将逗号分隔的字符串多行的实例将逗号分隔的字符串多行array为行补充:PostgreSQL 行列、列转行字符串函数、字符串分割函数1、字符串列转行2、字符串行列imagePath字符串切割处理3、字符串分割符 将逗号分隔的字符串多行 SELECT unnest(string_to_array('4513,4564,555',',')) as a1; array为行 SELECT unnest(ARRAY[1,2]); SELECT * from unnest(A
项目环境: hadoop-3.3.0 安装路径:/usr/local/Cellar/hadoop/3.3.0/ 启动方法:https://www.cnblogs.com/xym4869/p/8821312.html hive-3.1.2 下载地址:http://www.apache.org/dyn/closer.cgi/hive/ 安装路径:/usr/local/hive 初始化代码:schematool -dbType mysql -initSchema,同时lib文件夹下要有j
Presto是一个facebook开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。presto的架构由关系型数据库的架构演化而来。presto之所以能在各个内存计算型数据库中脱颖而出,在于以下几点: 清晰的架构,是一个能够独立运行的系统,不依赖于任何其他外部系统。例如调度,presto自身提供了对集群的监控,可以根据监控信息完成调度。 简单的数据结构,列式存储,逻辑行,大部分数据都可以轻易
<h3>回答1:</h3><br/>这个错误提示意味着在 Docker CE Stable 的元数据中没有 Presto 数据可用。这可能是由于网络连接问题或 Docker 仓库中的错误导致的。您可以尝试重新运行命令或检查您的网络连接。如果问题仍然存在,请尝试使用其他 Docker 仓库或等待一段时间再尝试。 <h3>回答2:</h3><br/>Docker是一种开源的容器化平台,它可以让开发者和运维人员更轻松地构建、发布和运行应用程序。在使用Docker时,有时可能会遇到“no presto metadata available for docker-ce-stable”的错误消息,这通常是由以下原因造成的: 1. 未正确配置Docker源:如果未正确配置Docker源,系统可能无法获取Docker的元数据,从而导致此错误消息的出现。通常解决方案是检查你的Docker源是否正确配置。 2. Presto已经停用:Presto是一种用于提高yum命令插件效率的工具。但是,最近已经被CentOS8弃用了。如果你正在使用的是CentOS 8以上的发行版,可以考虑直接在终端中使用yum安装Docker,而无需使用Presto。 3.镜像源问题:在Docker安装过程中,会下载很多镜像。如果你所使用的镜像源下载不完整或有问题,那么也可能会导致此类问题的出现。因此,建议使用官方推荐的镜像源或常用的可靠的镜像源。 综上所述,如果你遇到“no presto metadata available for docker-ce-stable”的错误消息,你可以尝试检查你的Docker源、换到没有Presto的CentOS版本或使用可靠的镜像源进行安装,以解决该问题。 <h3>回答3:</h3><br/>在使用Docker CE Stable时,当你尝试更新或安装 Docker 引擎时,可能会遇到“no presto metadata available for docker-ce-stable”的错误。这个错误信息的意思是没有 Docker CE Stable 的 Pesto 元数据可用。 但是,这个错误并不总是出现,它通常只在启用了Presto插件的情况下才会出现。 Presto是一个开源工具包,用于快速查询各种数据来源。Docker仓库为了更快的更新和下载镜像,启用了Presto插件,通过优化数据传输和查询加速docker仓库中的操作。 如果你在使用Presto插件时遇到了这个问题,那么就表明出现了一些错误,导致 Docker 引擎无法获取 Presto 元数据。这可能是因为仓库的Presto元数据被损坏,或者仓库没有包含预期的元数据。另外,它还可能是由于网络连接和服务器的问题导致的。 为了解决这个问题,你可以尝试以下步骤: 1. 手动清除 yum 缓存,并再次尝试更新或安装 Docker 引擎。 2. 确认你的网络连接畅通,尝试使用其他服务器或镜像源更新 Docker 引擎。 3. 禁用Presto插件,如下所示: yum-config-manager --disable docker-ce-stable-*</code> 4. 等待一段时间后再次尝试更新或安装 Docker 引擎。 以上是一些解决“no presto metadata available for docker-ce-stable”的常见方法。如果以上方法都不起作用,那么你可以继续尝试其他可能的解决方案,或者向官方网站寻求帮助。