小编Kur*_*ile的帖子

无服务器框架 - Python和Requirements.txt

使用无服务器框架v1.0.0,我的服务根目录中有一个'requirements.txt',内容是依赖python包的列表.(例如请求).

但是,由于看起来这些依赖项未作为打包的一部分安装,因此我的部署函数失败了

'无法导入模块'处理程序':没有名为requests的模块'

我认为它是无服务器的pip安装,但我的结果zip文件很小,很明显它没有这样做,无论是设计还是我的错,因为我错过了什么?是因为它的Lambda这样做了吗?如果是这样,我错过了什么?)

是否有文件说明了执行此操作所需的内容及其工作原理?是pip安装这些还是在aws lambda端无服务器?

感谢谢谢!

aws-lambda serverless-framework

10
推荐指数
3
解决办法
9101
查看次数

Spark - 使用Firehose从分区文件夹中读取JSON

Kinesis firehose将文件的持久性(在本例中为时间序列JSON)管理到由YYYY/MM/DD/HH划分的文件夹层次结构(直到24编号中的小时)......很棒.

如何使用Spark 2.0然后我可以读取这些嵌套的子文件夹并从所有叶子json文件创建一个静态Dataframe?数据框阅读器是否有"选项"?

我的下一个目标是将其作为流式DF,其中Firehose持久保存到s3中的新文件自然会成为使用Spark 2.0中新结构化流媒体的流数据帧的一部分.我知道这都是实验性的 - 希望有人之前使用S3作为流媒体文件源,其中数据被分成如上所述的文件夹.当然更喜欢直接使用Kinesis流,但是这个连接器上没有2.0的日期,所以Firehose-> S3是临时的.

ND:我正在使用databricks,它将S3安装到DBFS中,但当然可以很容易地成为EMR或其他Spark提供商.很高兴看到一个笔记本电脑,如果一个人可以分享给出一个例子.

干杯!

apache-spark apache-spark-sql databricks spark-structured-streaming

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

Python库-从json到json的转换

有谁知道一个Python库以XSLT / Velocity模板样式将JSON转换为JSON?

JSON +转换模板= JSON(新)

谢谢!

python json velocity transformation

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

IntelliJ 2016.2-JSON模式验证

我已经为JSON Schema配置了intelliJ。

https://www.jetbrains.com/help/idea/2016.2/json-schema.html

这样我的有效JSON模式应该针对它检查JSON-但是,如果我编写无效的json(语法正确,而不是针对模式语义),intelliJ不会检测到它,只是表明它是有效的?

有任何想法吗?

是否有快捷键来触发给定文件的模式验证?

谢谢

json intellij-idea jsonschema

5
推荐指数
0
解决办法
3093
查看次数

BigQuery - 流式插入 - 架构更新选项

使用 BQ 作业加载机制(即非流式插入),可以使用作业请求中的以下设置/选项来启用动态模式演化:

配置.load.schemaUpdateOptions[]

ALLOW_FIELD_ADDITION:允许向架构添加可为空的字段。ALLOW_FIELD_RELAXATION:允许将原始模式中的必填字段放宽为可为空。

这是非常强大的,可以轻松地允许向后兼容更改。我们希望转向流式插入模型,但似乎不支持此功能?

我已经查看了用于插入的表 API(又名“流式插入”),但似乎这不是使用此方法的选项?

我错过了这个吗?如果没有(已删除),它是否在路线图上?

谢谢!:)

google-bigquery

5
推荐指数
0
解决办法
920
查看次数

BigQuery - DELETE语句删除重复项

SQL上有很多很棒的帖子可以选择唯一的行并写入(截断)表格,以便删除dus.例如

WITH ev AS (
  SELECT
    *,
    ROW_NUMBER() OVER (PARTITION BY id ORDER BY loadTime DESC) AS rowNum
  FROM `duplicates`
 )
SELECT
  * EXCEPT(rowNum)
FROM
  ev
WHERE rowNum = 1
Run Code Online (Sandbox Code Playgroud)

我试图使用DML和DELETE稍微改变一下(例如,如果你不想使用BQ savedQuery,只需执行SQL).我想做的大致是:

WITH dup_events AS (
  SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY id ORDER BY loadTime DESC) AS rowNum
      FROM `duplicates`
 )
DELETE FROM
  dup_events
WHERE rowNum > 1
Run Code Online (Sandbox Code Playgroud)

但在控制台中出现此错误:

Syntax error: Expected "(" or keyword SELECT but got keyword DELETE at [10:1]
Run Code Online (Sandbox Code Playgroud)

可以使用DELETE实现(standardSQL)吗?

谢谢!

google-bigquery

5
推荐指数
3
解决办法
5624
查看次数

BigQuery-时间序列和选择“最新”记录的最有效方法

在我们的BQ设计中,我们有一个客户表(嵌套原始数据),该表是从我们的微服务层(消耗运动力蒸汽)中获取的事件,其中每个事件都有该事件所针对实体的最新实体快照(在更改)。我猜是一种现代的变更数据捕获。

每个事件中的最新快照都是我们填充BigQuery的方式-它将其提取并以APPEND ONLY模式加载(通过apache spark结构化连接器连接)到biqQuery中。(这与更改和更新给定ID的一行不同)

因此,仅在追加的情况下,此表的大小当然会随着时间的推移而增长-事件中每次更改的条目。但是,它很好地是一个完整的,按时间顺序排列的客户状态和变更(我们需要具备)的序列,因此是不变的。我们可以通过重播事件来重建整个仓库,例如……足够的上下文。

这样做的一个后果是,将事实加载到BigQuery中可能会导致重复(例如,如果发生火花错误并重试了一个微型批处理,则按作业加载时BQ并不是幂等的结构化流宿,或者仅仅是由于其通常可能的分布式性质)。SteamingInserts可能会在以后研究,因为它有助于重复数据删除.....

这种体系结构的结果是我需要原始时间序列数据(记住有时可能有重复项)的视图,这些视图在这些条件下会返回LATEST记录。

最新时间由客户记录(metadata.lastUpdated)上的元数据结构字段确定-带有MAX(metadata.lastUpdated)的行是最新的。这是我们的MS层所保证的。

这也是一个真实的事件时间时间戳。表ID DAY已分区,并具有_PARTITIONTIME列,但这仅是摄取时间,我无法使用它。当我可以指定要用作分区时间的列时很棒!(愿望清单)。

重复的将是具有相同客户'id'和'metadata.lastUpdated'的两行-因此MAX(metadata.lastUpdated)可能返回2行,因此我需要使用

ROW_NUMBER()OVER(PARTITION BY ....所以我可以选择rowNum = 1

在我看来,也只选择有凹痕的1行。

好的,足够多的单词/上下文(对不起),下面是我的SQL以获得最新的视图。它可以通过我的测试运行,但是当表的大小/行数变大时,我不确定这是实现结果的最有效方法,并且想知道是否有任何BigQuery棺材可能更有效/更聪明SQL要这样做吗?为什么说SQL没问题,但绝不是性能调优的专家,可以肯定,尤其是为BQ性能调优做SQL的最佳方法。

我只是希望能够将所有数据存储在一个表中,并依靠dremel引擎的功能来查询它,而不是需要多个表或进行任何过于复杂的操作。

所以我的SQL如下。注意-我的时间戳记是作为字符串提取的,因此也需要在视图中对其进行解析。

WITH
  cus_latest_watermark AS (
  SELECT
    id,
    MAX(PARSE_TIMESTAMP("%Y-%m-%dT%H:%M:%E*S%Ez", metadata.lastUpdated)) AS maxLastUpdatedTimestampUTC
  FROM
    `project.dataset.customer_refdata`
  GROUP BY
    id ),
  cust_latest_rec_dup AS (
  SELECT
    cus.*,
    ROW_NUMBER() OVER (PARTITION BY cus.id ORDER BY cus.id) AS rowNum
  FROM
    `project.dataset.customer_refdata` cus
  JOIN
    cus_latest_watermark
  ON
    cus.id = cus_latest_watermark.id
    AND PARSE_TIMESTAMP("%Y-%m-%dT%H:%M:%E*S%Ez", cus.metadata.lastUpdated) = cus_latest_watermark.maxLastUpdatedTimestampUTC)
SELECT
  cust_latest_rec_dup.* EXCEPT(rowNum)
FROM
  cust_latest_rec_dup
WHERE
  rowNum = 1
Run Code Online (Sandbox Code Playgroud)

谢谢!

google-bigquery

3
推荐指数
2
解决办法
2004
查看次数

如何使用自定义键值名称将映射列转换为结构类型?

我有一个UDF使用scala内置toArray函数将Map(在这种情况下为String-> String)转换为Array

val toArray = udf((vs: Map[String, String]) => vs.toArray)
Run Code Online (Sandbox Code Playgroud)

但是,数组结构的元组键名称为_1,值名称为_2

如何更改UDF定义,使键名是“ key”,值名是“ value”,作为UDF定义的一部分?

[{"_1":"aKey","_2":"aValue"}] 
Run Code Online (Sandbox Code Playgroud)

[{"key":"aKey","value":"aValue"}]
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql

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

BigQuery-通过UI恢复已删除的表

通过CLI在此发表了一些文章,但不确定通过UI以及新的alpha UI即将发布的当前状态。

在2天的删除宽限期限制内,是否有办法仅使用BQ UI和standardSQL来还原已删除的表,以进行查询并保存为实质上的“还原”,而不是GCP CLI?即

select *
from deleted-table@timstamp
Run Code Online (Sandbox Code Playgroud)

然后将结果保存在UI中为原始表名?

鉴于我们大多数人都在BQ UI中花费时间进行其他BQ工作,因此这使我感到更简单。

有什么想法吗?

谢谢

google-bigquery

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