我正在使用Typesafe Config(https://github.com/typesafehub/config)来参数化使用配置文件在yarn-cluster模式下运行的Spark作业.Typesafe Config的默认行为是在类路径中搜索名称与正则表达式匹配的资源,并自动将它们加载到配置类中ConfigFactory.load()(为了我们的目的,假设它调用的文件被调用application.conf).
我可以使用配置文件加载到驱动程序中--driver-class-path <directory containing configuration file>,但是使用--conf spark.executor.extraClassPath=<directory containing configuration file>不会将资源放在所有执行程序的类路径上.执行程序报告他们找不到我尝试添加到其类路径的配置文件中存在的密钥的某个配置设置.
使用Spark将文件添加到所有执行程序JVM的类路径的正确方法是什么?
我目前有一个包含2个项目的多项目SBT构建,其中一个依赖于另一个。从属用户进行了一项测试,需要从其工作目录下的某个目录结构中加载文件。它使用配置文件中的相对路径来指定此目录结构。
问题是,取决于我是通过IDE运行该测试(子项目级别的工作目录)还是在SBT总括项目级别(总目录的工作目录)运行此测试,因此测试能力有所不同。通过其相对路径加载此文件并成功。
我需要使用相对路径,以便其他从事此项目的开发人员可以开箱即用地使用签入的代码,并且不可能在项目的两个级别上复制目录结构和包含的文件。我真正需要做的是直接SBT在执行测试时将工作目录移动到子项目中,以便无论从何处启动测试,目录结构都可以保持不变。
SBT提供了一个ForkOptions类(http://www.scala-sbt.org/0.13.0/api/index.html#sbt.ForkOptions),在此处进一步进行描述:http : //www.scala-sbt.org/0.13 /docs/Forking.html在页面底部,似乎可以通过它提供要启动的派生JVM的工作目录,但没有提供有关如何在根build.sbt或为测试任务提供一个ForkOptions实例。
有没有人有使用此类的经验,和/或没有人可以提供一些有关从SBT的多项目构建中获取此功能的指导?
我目前刚接触Android开发,并遇到了以前的研究无法帮助我解决的问题.我在Android活动中使用findViewById()来获取在活动的相应xml片段文件中声明的TextView对象,如下所示:
public void scanLocalApk() {
//get the list of apks in the default downloads directory
ArrayList<File> foundAPKs = findApksInDownloadDirectory();
//display the list of found apks
String apkListString = "";
if (foundAPKs != null)
for (File f : foundAPKs)
apkListString += (f.getName() + "\n");
TextView displayApksTextView = (TextView) findViewById(R.id.display_apks);
displayApksTextView.setText(apkListString);
TextView apkToInstallTextView = (TextView) findViewById(R.id.label_apk_to_install);
apkToInstallTextView.setVisibility(View.VISIBLE);
EditText apkToInstallEditText = (EditText) findViewById(R.id.apk_to_install);
apkToInstallEditText.setVisibility(View.VISIBLE);
}
Run Code Online (Sandbox Code Playgroud)
在此行抛出NullPointerException:displayApksTextView.setText(apkListString); 因为它上面的行中的findViewById调用返回null.
资源"display_apks"在"fragment_scan_local_apk.xml"中定义:
<TextView android:id="@+id/display_apks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)
以前提到的Web解决方案已经说过确保在findViewById()上面调用setContentView(),但在我的代码中它是.
有没有人对这个问题有什么想法?
编辑:根据请求,我在这里调用setContentView()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scan_local_apk); …Run Code Online (Sandbox Code Playgroud) 我目前有超过 100 个 DAG 在生产中运行。我知道如何添加on_failure_callback由上游故障触发的操作员的警报,但是有没有一种方法可以将 Airflow 本身配置为在 DAG 发生故障时始终发送电子邮件,而无需遍历并更新我的每个 DAG 来发出警报个别失败?