【问题标题】:how do you use target data-validator in azure databricks?您如何在 azure databricks 中使用目标数据验证器?
【发布时间】:2021-12-30 06:02:34
【问题描述】:

我正在尝试运行由 Target 创建的名为 data-validator 的数据验证框架,以验证 Azure databricks 中 parquet 文件中的数据。

我创建了一个将使用数据验证器 fat jar 文件的 spark 作业。

如果我给一个参数--help,我可以获得有关如何使用data-validator的帮助,但是当我传递--config test_config.yaml文件时,data-validator找不到该文件。 enter image description here

OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0
Warning: Ignoring non-Spark config property: libraryDownload.sleepIntervalSeconds
Warning: Ignoring non-Spark config property: libraryDownload.timeoutSeconds
Warning: Ignoring non-Spark config property: eventLog.rolloverIntervalSeconds
21/12/30 06:17:29 INFO Main$: Logging configured!
21/12/30 06:17:29 INFO Main$: Data Validator
21/12/30 06:17:30 INFO ConfigParser$: Parsing `dbfs:/FileStore/shared_uploads/jyoti/test_config.yaml`
21/12/30 06:17:30 INFO ConfigParser$: Attempting to load `dbfs:/FileStore/shared_uploads/jyoti/test_config.yaml` from file system
21/12/30 06:17:30 ERROR Main$: Failed to parse config file 'dbfs:/FileStore/shared_uploads/jyoti/test_config.yaml, {}
DecodingFailure(java.io.FileNotFoundException: dbfs:/FileStore/shared_uploads/jyoti/test_config.yaml (No such file or directory)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at scala.io.Source$.fromFile(Source.scala:94)
    at scala.io.Source$.fromFile(Source.scala:79)
    at scala.io.Source$.fromFile(Source.scala:57)
    at com.target.data_validator.ConfigParser$.com$target$data_validator$ConfigParser$$loadFromFile(ConfigParser.scala:39)
    at com.target.data_validator.ConfigParser$$anonfun$6.apply(ConfigParser.scala:57)
    at com.target.data_validator.ConfigParser$$anonfun$6.apply(ConfigParser.scala:54)
    at scala.util.Try$.apply(Try.scala:213)
    at com.target.data_validator.ConfigParser$.parseFile(ConfigParser.scala:53)
    at com.target.data_validator.Main$.loadConfigRun(Main.scala:23)
    at com.target.data_validator.Main$.main(Main.scala:171)
    at com.target.data_validator.Main.main(Main.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
    at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:951)
    at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180)
    at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203)
    at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90)
    at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1039)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1048)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
, List())
21/12/30 06:17:30 ERROR Main$: data-validator failed!

我已将 yaml 文件存储在 dbfs 中。

请告诉我如何使用 databricks 中的 spark-job 在 data-validator 中传递 YAML 配置文件。

【问题讨论】:

    标签: apache-spark validation azure-databricks


    【解决方案1】:

    您需要传递格式为DBFS Local File API 的文件名,因为ConfigParser 库很可能只适用于本地文件。为此,您需要将 dbfs: 替换为 /dbfs,就像在您的示例中一样 - 将 dbfs:/FileStore/shared_uploads/jyoti/test_config.yaml 更改为 /dbfs/FileStore/shared_uploads/jyoti/test_config.yaml。

    【讨论】:

    • 完美!谢谢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    • 2021-06-04
    相关资源
    最近更新 更多