小编Moh*_*han的帖子

SQL“FROM UNNEST”的语义是什么?

在阅读正式语言中的表达式时,我习惯于从内到外阅读,即理解子表达式并构建整体。在这个 SQL 片段中

SELECT 
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'TITLE') AS level_id,
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'url') AS url
FROM `events_20180725`
WHERE event_name = 'SCI_ERROR'
Run Code Online (Sandbox Code Playgroud)

一个子表达式是

SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'TITLE'
Run Code Online (Sandbox Code Playgroud)

这不是一个普通的子查询:如果我试图自己运行它,我会得到一个错误,因为event_params它不是一个数组。所以看起来

  • UNNEST 可以与数组以外的东西一起使用。
  • events_20180725外部使用的表有某种绑定,FROM这使得UNNEST子查询内部可以访问它。

https://cloud.google.com/bigquery/docs/reference/standard-sql/arrays包含一些示例(在“查询嵌套数组”下),但实际上并未解释语义。这里发生了什么?

sql google-bigquery

2
推荐指数
1
解决办法
1万
查看次数

Docker:创建的文件在层之间消失

运行Docker版本17.06.0-ce,内部版本02c1d87,我有一个看起来像这样的dockerfile:

FROM maven:3.5.2-jdk-8-alpine as builder

RUN chmod -R 777 /root/.m2 &&\
 mkdir -p /root/.m2/repository/com/foo/bar &&\
 echo "Text" > /root/.m2/repository/com/foo/bar/baz.txt &&\
 ls -R -a -l /root/.m2/repository/com/foo
RUN ls -R -a -l /root/.m2/repository/com/foo
Run Code Online (Sandbox Code Playgroud)

第一个RUN命令成功创建了一个文件,但是第二个命令找不到该文件:

Step 1/46 : FROM maven:3.5.2-jdk-8-alpine as builder
 ---> 293423a981a7
Step 2/46 : RUN chmod -R 777 /root/.m2 && mkdir -p /root/.m2/repository/com/foo/bar && echo "Text" > /root/.m2/repository/com/foo/bar/baz.txt && ls -R -a -l /root/.m2/repository/com/foo
 ---> Running in a1c0fd142856
/root/.m2/repository/com/foo:
total 12
drwxr-xr-x    3 root     root          4096 Nov 30 13:32 . …
Run Code Online (Sandbox Code Playgroud)

mkdir docker dockerfile

1
推荐指数
1
解决办法
529
查看次数

等效于getOrElse的Python

在具有可选类型的语言中,您可以使用一个称为orElse或的fn来getOrElse执行此操作:

None.getOrElse(1) == 1
Some(2).getOrElse(1) == 2
Run Code Online (Sandbox Code Playgroud)

即您可以指定一个默认值。在Python中,我发现自己正在编写:

if output_directory:
    path = output_directory
else:
    path = '.'
Run Code Online (Sandbox Code Playgroud)

getOrElse通话会更干净。搜索orElse和getOrElse会出现逻辑运算符。有合适的Python fn吗?

编辑:getOrElse与三元运算符调用不同,因为这需要您output_directory 两次引用。如果将其替换为复杂的表达式,这将是一个特殊的问题。(在功能样式上非常正常。)

python

1
推荐指数
2
解决办法
1070
查看次数

Keras:是否有 train_on_batch 的示例代码,其中包含历史记录+进度?

在 Python 中,我从 Keras 转向Model.fit循环Model.train_on_batch以实现更精细的控制。但返回的进度条和History对象fit很有用。在浪费时间从头开始实现它们之前,我想知道是否有人找到了使用train_on_batch重现进度条和历史记录的示例代码?

(注意。我查看了 的源代码fit,但是有足够多的间接层,因此很难准确地挖掘出它在做什么。还发现了this,这很有帮助,但没有相关功能。)

python keras tensorflow

0
推荐指数
1
解决办法
1775
查看次数

C++:Unicode字符串文字的可移植性

在gcc上调试时,我发现Unicode文字u"????"表示为u"\007\116\015\116\227\137\362\135".哪个有意义 - ?是0x4E07,而八进制中的0x4E是116.

现在在基于Intel的Macbook上的Apple LLVM 9.1.0上,我发现相同的文字不会被处理为相同的字符串,即:

u16string{u"????"} == u16string{u"\007\116\015\116\227\137\362\135"}
Run Code Online (Sandbox Code Playgroud)

从去truefalse.我还在使用小端系统,所以我不明白发生了什么.

NB.我不是想使用对应关系u"????"== u"\007\116\015\116\227\137\362\135".我只是想了解发生了什么.

c++ unicode string-literals

-2
推荐指数
1
解决办法
53
查看次数