在 aws Athena 的视图中使用“$path”
Using "$path" on view in aws Athena
我有一个 table,里面有一个复杂的类型字段(有点像 json)。
我在 table 上创建了一个视图,以将复杂类型取消嵌套到 table。
创建或替换 VIEW 测试 AS
SELECT
, "t1"."第一"
, "内在"."inner_first"
, "$路径"
从
t t1
, UNNEST("内部") t (内部)
限制 10
我使用 $path 函数根据文件名查询我的数据。
不幸的是,当我尝试在视图上查询 $path 时它不起作用,只是没有返回任何内容。
所以我决定将 $path 字段添加到我的视图中,以便在外部查询它(如上所示)。
但它仍然有效,当我查询时:
select * 来自测试
其中“$路径”= 'x'
我没有得到相关结果。
好像 s3 路径里面的东西出了问题。
当我尝试:where "$path" like '%s3://bucket/output/table/part-00000-01131f4f-3fba-4711-8372-11df66a4224a-c000.snappy.parquet%' -> 它仍然无法正常工作。
当我尝试时:
- 其中“$path”如“%c000.snappy.parquet%”
或者
- 其中“$path”如“%part-00000-%”
它突然适用于非常小的字符集。
但我无法理解其中的逻辑,我考虑过隐藏字符,但归根结底,它只是一个常规的 s3 路径,例如:
s3://bucket/output/table/part-00000-01131f4f-3fba-4711-8372-11df66a4224a-c000.snappy.parquet
如果您遇到过这种奇怪的情况,请告诉我。
谢谢!
您需要给“$path”一个别名才能查询该列,或者使用默认的_col4。例如:
create view myview as select "$path" as path from...
然后
select path from myview
我有一个 table,里面有一个复杂的类型字段(有点像 json)。 我在 table 上创建了一个视图,以将复杂类型取消嵌套到 table。
创建或替换 VIEW 测试 AS SELECT , "t1"."第一" , "内在"."inner_first" , "$路径" 从 t t1 , UNNEST("内部") t (内部) 限制 10
我使用 $path 函数根据文件名查询我的数据。
不幸的是,当我尝试在视图上查询 $path 时它不起作用,只是没有返回任何内容。 所以我决定将 $path 字段添加到我的视图中,以便在外部查询它(如上所示)。
但它仍然有效,当我查询时: select * 来自测试 其中“$路径”= 'x'
我没有得到相关结果。 好像 s3 路径里面的东西出了问题。
当我尝试:where "$path" like '%s3://bucket/output/table/part-00000-01131f4f-3fba-4711-8372-11df66a4224a-c000.snappy.parquet%' -> 它仍然无法正常工作。 当我尝试时:
- 其中“$path”如“%c000.snappy.parquet%” 或者
- 其中“$path”如“%part-00000-%” 它突然适用于非常小的字符集。
但我无法理解其中的逻辑,我考虑过隐藏字符,但归根结底,它只是一个常规的 s3 路径,例如: s3://bucket/output/table/part-00000-01131f4f-3fba-4711-8372-11df66a4224a-c000.snappy.parquet
如果您遇到过这种奇怪的情况,请告诉我。
谢谢!
您需要给“$path”一个别名才能查询该列,或者使用默认的_col4。例如:
create view myview as select "$path" as path from...
然后
select path from myview