从文档中,https://developers.google.com/apps-script/guides/standalone
\n\n运行独立脚本
\n\n编写脚本后,有两种方法可以从脚本编辑器运行函数:
\n\n选择“运行”菜单,然后选择要执行的函数的名称。
从工具栏的选择框中选择要执行的函数的名称,然后单击\xe2\x96\xb6。
它没有告诉我们如何将参数值传递给我想要运行的函数。
\n\n那么如何将参数值传递给函数并运行这些函数呢?
\n我有这些 bigquery 字段
views INTEGER NULLABLE
comments INTEGER NULLABLE
shares INTEGER NULLABLE
watch_time_minutes FLOAT NULLABLE
Run Code Online (Sandbox Code Playgroud)
观看次数 评论 分享 watch_time_minutes 0 0 1 0.0
我通过BigQuery控制台页面(简称“导出表”)将此bigquery数据导出到云存储(json格式),我得到的是
{"views":"0","comments":"0","shares":"1","watch_time_minutes":0}
Run Code Online (Sandbox Code Playgroud)
请注意,在此 json 记录中,整数字段更改为字符串值,"views":"0","comments":"0","shares":"1"
但浮点字段保持数字格式“watch_time_months”:0
Json 中的整数字段应保持数字格式,如下所示
"views":0,"comments":0,"shares":1
Run Code Online (Sandbox Code Playgroud)
否则,在接下来的过程中,当我对这些应该是整数字段(但不显示为 json 中的字符串)进行数学运算时,我会遇到问题。
有什么建议吗?
现在,我的一个解决方案是循环访问(数百万行)存储文件并将所有整数字段转换回整数。但它击败了“只需通过一条语句将bigquery表导出到存储”的性能优势。
我有另一个丑陋的解决方案,即“将整数字段重新定义为浮点数”,但这真的很丑陋,并且稍后会导致其他问题。例如我无法将浏览次数显示为 0.0 次。ETC。
谢谢!
$ virtualenv --version
16.3.0
$ pip --version
pip 19.0.1
Run Code Online (Sandbox Code Playgroud)
我创造了一个新鲜的环境。并运行
pip install apache-airflow
Run Code Online (Sandbox Code Playgroud)
安装成功
apache-airflow 1.10.2
Run Code Online (Sandbox Code Playgroud)
但是然后我运行
airflow initdb
Run Code Online (Sandbox Code Playgroud)
我得到了错误
ERROR [airflow.models.DagBag] Failed to import: /Users/admin/workshops/apache/airflow/lib/python3.7/site-packages/airflow/example_dags/example_http_operator.py
Traceback (most recent call last):
File "/Users/admin/workshops/apache/airflow/lib/python3.7/site-packages/airflow/models.py", line 374, in process_file
m = imp.load_source(mod_name, filepath)
File "/Users/admin/workshops/apache/airflow/lib/python3.7/imp.py", line 171, in load_source
module = _load(spec)
File "<frozen importlib._bootstrap>", line 696, in _load
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/Users/admin/workshops/apache/airflow/lib/python3.7/site-packages/airflow/example_dags/example_http_operator.py", …Run Code Online (Sandbox Code Playgroud) 来自 Google Bigquery 文档:
运行参数化查询
BigQuery 支持查询参数,以帮助防止使用用户输入构建查询时的 SQL 注入。此功能仅适用于标准 SQL 语法。
要指定命名参数,请使用 @ 字符后跟标识符,例如 @param_name。
Google Bigquery 有 python 和 Java 的示例代码来使用参数化查询。
https://cloud.google.com/bigquery/querying-data#bigquery-query-params-python
Google Bigquery 此处没有用于运行参数化查询的 php 示例代码。
我尝试在 php 中使用 @,就像在 python 和 java 代码中一样,但它不起作用。
有什么建议吗?
谢谢!
我根据 Elliott 和 Mosha 的要求添加了代码
代码:
$query = "SELECT * FROM [myproject.mydateset.users] where user_id = '$userId' LIMIT 1000";
$queryResults = $this->bigQuery->runQuery($query);
Run Code Online (Sandbox Code Playgroud)
这个查询没问题。但这并不能阻止sql注入。
我尝试将查询更改为
$query = "SELECT * FROM [myproject.mydateset.users] where user_id = '@$userId' LIMIT 1000";
Run Code Online (Sandbox Code Playgroud)
或者
$query = "SELECT * FROM [myproject.mydateset.users] …Run Code Online (Sandbox Code Playgroud) 我正在Macbook上运行Laravel Homestead。
我所做的一件事是使用.env设置主机IP,因此每次只需要在一个位置更改ip。
家园会以任何方式知道其托管计算机的IP地址吗?
谢谢!
如果我使用table-> insertRow()或table-> inserRows()函数,则意味着我正在将数据流式传输到bigquery中。
https://googlecloudplatform.github.io/google-cloud-php/#/docs/google-cloud/v0.53.0/bigquery/table
但是,如果我使用bigquery-> runQuery()函数运行insert语句,则不会进行流式处理。
在哪种情况下,我应该使用流式传输来插入数据?在什么情况下,我应该使用bigquery runQuery运行插入语句?
谢谢!
找到 Neo4j 社区版本的 config 和 bin 文件夹很简单。它们位于我安装 Neo4j 社区版本的文件夹中。
但对于 Neo4j Desktop,我找不到 bin 和 config 文件夹。
Neo4j 桌面应用程序
/Applications/Neo4j Desktop
Run Code Online (Sandbox Code Playgroud)
Neo4j 桌面应用程序数据库
~/Library/Application Support/Neo4j Desktop/Application/neo4jDatabases
Run Code Online (Sandbox Code Playgroud)
但我找不到 Neo4j Desktop config 和 bin 文件夹在哪里。