我正在使用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) 我正在使用以下方法将数据集写入 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/)
我正在运行一个每小时的进程,从一个位置(“源”)获取数据并将其移动到另一个位置(“目的地”)。在大多数情况下,数据在特定时间到达我的来源,一切正常,但可能会出现延迟,当发生这种情况时,气流中的任务会失败,需要手动重新运行。解决此问题的一种方法是为数据提供更多时间到达,但我更喜欢仅在确实存在延迟的情况下才这样做。另外,我不希望传感器长时间等待数据,因为这可能会导致死锁(最好不要让每小时任务运行超过 1 小时)。气流是否允许在给定条件(失败或不存在数据)下重新调度任务,以便我们不必手动重新运行失败的任务?
谢谢!
我正在编写一个程序,从 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,但没有令牌。
你知道我可以用另一种方法来完成这个任务吗?
谢谢
我试图看到整个SBT树,但是当我运行sbt dependency-tree时,我没有收到任何结果(经过一分钟左右的处理).
怎么解决这个问题?
谢谢你
我希望 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 将包复制到本地存储桶,这当然有效
我如何了解要运行的测试的正确文件夹结构是什么?谢谢!
我使用 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
我错过了什么?
谢谢
scala ×3
apache-spark ×2
airflow ×1
curl ×1
databricks ×1
facebook ×1
java ×1
java-8 ×1
json ×1
python-3.x ×1
sbt ×1