小编Nir*_*cov的帖子

在Spark中展平行

我正在使用scala对spark进行一些测试.我们通常会读取需要操作的json文件,如下例所示:

test.json:

{"a":1,"b":[2,3]}
Run Code Online (Sandbox Code Playgroud)
val test = sqlContext.read.json("test.json")
Run Code Online (Sandbox Code Playgroud)

如何将其转换为以下格式:

{"a":1,"b":2}
{"a":1,"b":3}
Run Code Online (Sandbox Code Playgroud)

scala distributed-computing apache-spark apache-spark-sql

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

使用架构中的所有键(包括空列)将 spark 数据集写入 json

我正在使用以下方法将数据集写入 json:

ds.coalesce(1).write.format("json").option("nullValue",null).save("project/src/test/resources")
Run Code Online (Sandbox Code Playgroud)

对于包含空值列的记录,json 文档根本不写入该键。

有没有办法对 json 输出强制执行空值键?

这是必需的,因为我使用此 json 将其读取到另一个数据集(在测试用例中)并且如果某些文档没有案例类中的所有键,则无法强制执行模式(我通过将 json 文件放在资源下来读取它文件夹并通过 RDD[String] 转换为数据集,如下所述:https : //databaseline.bitbucket.io/a-quickie-on-reading-json-resource-files-in-apache-spark/

json scala apache-spark databricks

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

如何自动重新安排气流任务

我正在运行一个每小时的进程,从一个位置(“源”)获取数据并将其移动到另一个位置(“目的地”)。在大多数情况下,数据在特定时间到达我的来源,一切正常,但可能会出现延迟,当发生这种情况时,气流中的任务会失败,需要手动重新运行。解决此问题的一种方法是为数据提供更多时间到达,但我更喜欢仅在确实存在延迟的情况下才这样做。另外,我不希望传感器长时间等待数据,因为这可能会导致死锁(最好不要让每小时任务运行超过 1 小时)。气流是否允许在给定条件(失败或不存在数据)下重新调度任务,以便我们不必手动重新运行失败的任务?

谢谢!

airflow airflow-scheduler

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

如何使用curl从Facebook API获取用户访问令牌

我正在编写一个程序,从 Facebook 检索我们的营销数据。我正在编写的程序只能使用curl来检索用户访问令牌并且没有UI,我找到的唯一信息是调用这个url

Curl('https://graph.facebook.com/oauth/authorize?client_id=1534273216862757&response_type=token&redirect_uri=https://www.facebook.com/connect/login_success.html','GET')
Run Code Online (Sandbox Code Playgroud)

但是,当我发送此消息时,我取回了重定向页面的整个 html,但没有令牌。

你知道我可以用另一种方法来完成这个任务吗?

谢谢

curl facebook facebook-graph-api

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

SBT依赖树

我试图看到整个SBT树,但是当我运行sbt dependency-tree时,我没有收到任何结果(经过一分钟左右的处理).

怎么解决这个问题?

谢谢你

scala sbt

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

在 Google Cloud Build 中运行 python 单元测试

我希望 Google Cloud Build 在推送更改后运行我的 python 项目中的单元测试。我能够配置运行测试的步骤,但我不确定如何输入保存测试的目录,如果我只是输入,那么.它会运行 0 测试

我的项目结构是: -project_name -package_name -test -sample_test.py

这是我的cloudbuild.yaml配置:

steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: ["run","gcr.io/google-appengine/python","python3","-m","unittest","discover","--verbose","-s","./package_name/test/","-p","*_test.py"]
      id:   unittest
Run Code Online (Sandbox Code Playgroud)

上面的操作失败并显示以下消息:

raise ImportError('Start directory is not importable: %r' % start_dir)
ImportError: Start directory is not importable: './package_name/test/'
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: exit status 1
Show debug panel
Run Code Online (Sandbox Code Playgroud)

如果我用刚才替换的文件夹,.它会运行但不会发现任何测试。为了将代码复制到 gs 存储桶,我们使用 gsutil,然后 ./package_name 将包复制到本地存储桶,这当然有效

我如何了解要运行的测试的正确文件夹结构是什么?谢谢!

python-3.x google-cloud-build

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

在 Java 8 列表上过滤

我使用 fj.data.List 提供的 List 类型在功能 Java 中有一个 List 类型列表

import fj.data.List

List<Long> managedCustomers
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下方法对其进行过滤:

managedCustomers.filter(customerId -> customerId == 5424164219L)
Run Code Online (Sandbox Code Playgroud)

我收到这条消息

在此处输入图片说明

根据文档,List 有一个过滤器方法,这应该可以工作 http://www.functionaljava.org/examples-java8.html

我错过了什么?

谢谢

java functional-programming functional-java java-8

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