标签: databricks

如何从 Azure databricks 在 Azure Blob 中创建空文件夹

我有一个场景,我想列出 Azure Blob 中目录内的所有文件夹。如果不存在文件夹,则创建一个具有特定名称的新文件夹。

我正在尝试使用 dbutils.fs.ls(path) 列出文件夹。

但上述命令的问题是,如果路径不存在,它就会失败,这对我来说是一个有效的场景。

如果我的程序第一次运行,路径将不存在,并且 dbutils.fs.ls 命令将失败。有什么方法可以从 Databricks 动态处理这种情况。

如果我可以在执行作业之前从 Databricks 在 Azure Blob 中创建一个空文件夹,它也对我有用。

我尝试从 databricks 笔记本运行以下命令

   %sh mkdir -p /mnt/<mountName>/path/folderName 
Run Code Online (Sandbox Code Playgroud)

这里命令成功运行,即使我在 Azure Blob 中的容器已安装,它也不会创建该文件夹。抱歉这么长的帖子。任何帮助深表感谢。提前致谢

azure azure-blob-storage databricks azure-databricks

14
推荐指数
1
解决办法
3万
查看次数

Databricks 社区版集群无法启动

我正在尝试启动一个在社区版中终止的集群。但是,每当我单击“启动”时,集群都不会启动。看来每次我想使用 Databrick 集群时都必须创建一个新集群。有人可以证实是这样吗?

在此输入图像描述

apache-spark databricks

14
推荐指数
1
解决办法
7778
查看次数

Databricks - 不为空,但它不是 Delta 表

我在 Databricks 上运行查询:

DROP TABLE IF EXISTS dublicates_hotels;
CREATE TABLE IF NOT EXISTS dublicates_hotels
...
Run Code Online (Sandbox Code Playgroud)

我试图理解为什么我收到以下错误:

SQL 语句错误: AnalysisException:无法创建表(' default. dublicates_hotels')。关联位置 ('dbfs:/user/hive/warehouse/dublicates_hotels') 不为空,但它不是 Delta 表

我已经找到了解决它的方法(通过手动删除它):

dbutils.fs.rm('.../dublicates_hotels',recurse=True)
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么它仍然保留桌子?即使我创建了一个新集群(终止了前一个集群),并且我正在附加一个新集群来运行此查询。

任何人都可以帮助我理解这一点吗?

apache-spark-sql databricks delta-lake

14
推荐指数
3
解决办法
3万
查看次数

在DataFrame上应用映射函数

我刚开始使用databricks/pyspark.我使用python/spark 2.1.我已将数据上传到表格.该表是一个完整的字符串列.我希望将映射函数应用于列中的每个元素.我将表加载到数据帧中:

df = spark.table("mynewtable")
Run Code Online (Sandbox Code Playgroud)

我能看到的唯一方法是其他人说是将其转换为RDD以应用映射函数,然后返回到数据框以显示数据.但这会导致工作中止阶段失败:

df2 = df.select("_c0").rdd.flatMap(lambda x: x.append("anything")).toDF()
Run Code Online (Sandbox Code Playgroud)

我想要做的就是将任何类型的map函数应用于表格中的数据.例如,在列中为每个字符串添加一些内容,或者对char执行拆分,然后将其放回到数据框中,以便我可以.show()或显示它.

python apache-spark pyspark databricks

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

获取数组列的大小/长度

我是Scala编程的新手,这是我的问题:如何计算每行的字符串数量?我的Dataframe由一列Array [String]类型组成.

friendsDF: org.apache.spark.sql.DataFrame = [friends: array<string>]
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql databricks

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

Azure Databricks 中的 Python 版本

我正在尝试找出我在 Databricks 中使用的 python 版本。

为了找出我尝试过的

import sys
print(sys.version)
Run Code Online (Sandbox Code Playgroud)

我得到的输出为3.7.3

但是,当我转到 Cluster --> SparkUI --> Environment 时

我看到集群 Python 版本是2

这是指哪个版本?

当我尝试跑步时

%sh python --version
Run Code Online (Sandbox Code Playgroud)

我仍然得到 Python 3.7.3

每个工作节点/驱动节点可以有不同的 python 版本吗?

注意:我使用的设置有 1 个工作节点和 1 个驱动程序节点(总共 2 个节点具有相同的规格),Databricks 运行时版本为 6.5 ML

python databricks azure-databricks

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

列出 databricks 秘密范围并在 azure databricks 中查找引用的 keyvault

我们如何在 databricks 工作区中找到现有的秘密范围。Azure Databricks 中的特定 SecretScope 引用了哪个 keyvault?

azure-keyvault databricks azure-databricks

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

“正在确定 DBIO 文件片段的位置...”是什么意思,我该如何加快速度?

在 Databricks 中运行简单的 SQL 命令时,有时会收到以下消息:

确定 DBIO 文件片段的位置。此操作可能需要一些时间。

这是什么意思,我如何防止它每次都必须执行这种看似昂贵的操作?即使所有基础表都是增量表,也会发生这种情况。

pyspark-sql databricks

12
推荐指数
1
解决办法
3392
查看次数

将 Matlabplot 保存为 MLFlow 工件

我正在使用 DataBricks 和 Spark 7.4ML,

以下代码成功记录了参数和指标,我可以在 MLFLOW gui 中看到 ROCcurve.png(只是模型下方树中的项目)。但实际上剧情是空白的。为什么?

with mlflow.start_run(run_name="logistic-regression") as run:
  pipeModel = pipe.fit(trainDF)
  mlflow.spark.log_model(pipeModel, "model")
  predTest = pipeModel.transform(testDF)
  predTrain = pipeModel.transform(trainDF)
  evaluator=BinaryClassificationEvaluator(labelCol="arrivedLate")
  trainROC = evaluator.evaluate(predTrain)
  testROC = evaluator.evaluate(predTest)
  print(f"Train ROC: {trainROC}")
  print(f"Test ROC: {testROC}")
  mlflow.log_param("Dataset Name", "Flights " + datasetName)
  mlflow.log_metric(key="Train ROC", value=trainROC)
  mlflow.log_metric(key="Test ROC", value=testROC)

  lrModel = pipeModel.stages[3]
  trainingSummary = lrModel.summary
  roc = trainingSummary.roc.toPandas()
  plt.plot(roc['FPR'],roc['TPR'])
  plt.ylabel('False Positive Rate')
  plt.xlabel('True Positive Rate')
  plt.title('ROC Curve')
  plt.show()
  plt.savefig("ROCcurve.png")
  mlflow.log_artifact("ROCcurve.png")
  plt.close()
  
  display(predTest.select(stringCols + ["arrivedLate", "prediction"]))
Run Code Online (Sandbox Code Playgroud)

笔记本显示的内容:

在此输入图像描述

MLFlow 显示的内容:

在此输入图像描述

matplotlib apache-spark pyspark databricks mlflow

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

Databricks - 将 dbfs:/FileStore 文件下载到我的本地计算机

通常我使用下面的 URL 将文件从 Databricks DBFS FileStore 下载到我的本地计算机。

*https://<MY_DATABRICKS_INSTANCE_NAME>/fileStore/?o=<NUMBER_FROM_ORIGINAL_URL>*
Run Code Online (Sandbox Code Playgroud)

然而,这次文件没有下载,URL 而是将我引导至 Databricks 主页。有人对如何将文件从 DBFS 下载到本地有任何建议吗?或者应该如何修复 URL 以使其正常工作?

任何建议将不胜感激!

八打灵再也

databricks azure-databricks

12
推荐指数
1
解决办法
3万
查看次数