标签: azure-databricks

如何在 Databricks Python Notebook 中运行/执行输入单元

我在Databricks笔记本中编写了以下代码

name = input("Please enter your name: ")
age = input("How old are you, {0}?".format(name))
print(age)
Run Code Online (Sandbox Code Playgroud)

正如您所猜测的,运行单元格后,系统会要求我“请输入您的姓名:”问题是我不知道在哪里输入。如果这是用 intelliJ IDEA 或 IDLE 编写的,我将获得一个单独的窗口来输入我的名字。但是,使用 Databricks 笔记本,即使我在不​​同的单元格中输入答案,它似乎也在不断等待输入,请参见图像:

在哪里输入

我真的应该知道这个问题的答案

databricks azure-databricks

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

该请求无权使用该权限执行该操作

我正在尝试使用以下配置在 dattabricks 中安装 adls gen2

configs = {"fs.azure.account.auth.type": "OAuth",
   "fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
   "fs.azure.account.oauth2.client.id": "service principal id",
   "fs.azure.account.oauth2.client.secret": "service principal key",
   "fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/tenant-id/oauth2/token",
   "fs.azure.createRemoteFileSystemDuringInitialization": "true"}
dbutils.fs.mount(
source = "abfss://file-system@storage-account.dfs.core.windows.net/directory",
mount_point = "/mnt/data",
extra_configs = configs)
Run Code Online (Sandbox Code Playgroud)

我已创建服务主体并为其创建密钥,然后在 Active Directory 角色分配中向该服务主体提供存储 Blob 角色

根据文件

"abfss://<your-file-system-name>@<your-storage-account-name>.dfs.core.windows.net/<your-directory-name>"
Run Code Online (Sandbox Code Playgroud)

blob 容器内的 your-file-system ==> 文件夹应该是什么?you-directory-name ==> 我在 Blob 容器内只有一个文件夹,所以这里很混乱 storgae(ADLS gen 2 Preview) Blob 容器文件夹 a.txt

错误


ExecutionError:调用 o480.mount 时发生错误。HEAD https://xxxxxxxxx.dfs.core.windows.net/xxxxxx?resource=filesystem&timeout=90 StatusCode=403 StatusDescription=此请求无权使用此权限执行此操作。ErrorCode=ErrorMessage=在shaded.databricks.v20180920_b33d810.org.apache.hadoop.fs.azurebfs.services.AbfsRestOperation.execute(AbfsRestOperation.java:134)在shaded.databricks.v20180920_b33d810.org.apache.hadoop.fs.azurebfs。 services.AbfsClient.getFilesystemProperties(AbfsClient.java:197)位于shaded.databricks.v20180920_b33d810.org.apache.hadoop.fs.azurebfs.AzureBlobFileSystemStore.getFilesystemProperties(AzureBlobFileSystemStore.java:214)位于shaded.databricks.v20180920_b33d810。 org.apache. hadoop.fs.azurebfs.AzureBlobFileSystem.fileSystemExists(AzureBlobFileSystem.java:749)位于shaded.databricks.v20180920_b33d810.org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.initialize(AzureBlobFileSystem.java:110)位于com.databricks.backend。 daemon.dbutils.DBUtilsCore.verifyAzureFileSystem(DBUtilsCore.scala:485) 在 com.databricks.backend.daemon.dbutils.DBUtilsCore.mount(DBUtilsCore.scala:435) 在 sun.reflect.GenerateMethodAccessor400.invoke(未知来源) 在太阳。 Reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) 在 py4j.reflection.ReflectionEngine …

databricks azure-databricks

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

使用 Databricks 连接

我想使用我最喜欢的编辑器在本地编辑 Databricks 笔记本,然后使用Databricks Connect在我通常通过 Web 界面访问的 Databricks 集群上远程运行笔记本。

不幸的是,在网上搜索了几天后,我找不到有关 Databricks Connect 的详细文档。

databricks-connect configure按照上面 PyPI 页面上的建议运行 ,但我不确定某些设置是什么。有人可以引导我完成这个过程(比如在网络界面中哪里可以找到这些值)或提供正确文档的链接吗?

databricks-connect configure我知道一些设置应该是什么,但为了完整性和其他人的利益,我将包括运行时出现的所有内容。

Databricks Host
Databricks Token
Cluster ID(例如,0921-001415-jelly628
Org ID(仅限 Azure,请参阅?o=orgIdURL)
Port(是吗spark.databricks.service.port?)

另外,我认为这是我最感兴趣的,我是否需要对笔记本本身进行任何更改,例如定义 SparkContext 或其他内容?如果有的话,用什么配置?

我应该如何运行它?运行后databricks-connect configure,似乎没有发生任何“魔法”。当我运行时jupyter notebook,它仍然在本地运行,并且似乎不知道将其转发到远程集群。

更新: 如果您想考虑更具体的东西,在 Databricks 的 Web 界面中,dbutils是一个预定义的对象。远程运行笔记本时如何引用它?

jupyter-notebook databricks azure-databricks

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

Databricks 和 Azure 文件

我需要从Azure Databricks访问Azure 文件。根据文档,支持Azure Blob ,但我需要此代码来处理 Azure 文件:

dbutils.fs.mount(
  source = "wasbs://<your-container-name>@<your-storage-account-name>.file.core.windows.net",
  mount_point = "/mnt/<mount-name>",
  extra_configs = {"<conf-key>":dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")})
Run Code Online (Sandbox Code Playgroud)

或者是否有其他方法可以将Azure 文件装载到 Azure Databricks 群集或从Azure Databricks群集访问 Azure 文件?谢谢

azure-files azure-databricks

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

为什么配置 Databricks Connect 后“databricks-connect 测试”不起作用?

我想使用 IntelliJ IDEA 直接在集群中运行 Spark 进程,因此我遵循下一个文档https://docs.azuredatabricks.net/user-guide/dev-tools/db-connect.html

配置完所有内容后,我运行databricks-connect test但没有获得文档所述的 Scala REPL。

在此输入图像描述

这是我的集群配置

在此输入图像描述

intellij-idea apache-spark databricks azure-databricks

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

将 C# 应用程序连接到 Azure Databricks

我目前正在开发一个项目,我们将数据存储在 Azure Datalake 上。Datalake 连接到 Azure Databricks。

该要求要求 Azure Databricks 连接到 C# 应用程序,以便能够运行查询并从 C# 应用程序获取所有结果。我们目前解决该问题的方法是在 Databricks 上创建一个工作区,其中包含许多需要执行的查询。我们创建了一个链接到上述工作区的作业。从 C# 应用程序中,我们调用本文档中列出的许多 API来调用作业实例并等待其执行。但是,我无法从文档中列出的任何 API 中提取结果。

我的问题是,我们采取了正确的方法还是有什么我们没有看到的?如果这是可行的方法,那么您在从 C# 应用程序在 Azure Databricks 上成功运行的作业中提取结果方面有何经验。

c# azure azure-data-lake databricks azure-databricks

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

apache Spark sql 表覆盖问题

我使用下面的代码从 databricks 中的数据帧创建一个表并遇到错误。

df.write.saveAsTable("newtable")
Run Code Online (Sandbox Code Playgroud)

第一次工作正常,但如果我像下面这样重写,则可重复使用

df.write.mode(SaveMode.Overwrite).saveAsTable("newtable")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误。

错误信息:

org.apache.spark.sql.AnalysisException: Can not create the managed table newtable. The associated location dbfs:/user/hive/warehouse/newtable already exists
Run Code Online (Sandbox Code Playgroud)

apache-spark-sql azure-databricks

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

如何查看Databricks中的所有数据库和表

我想列出 Azure Databricks 中每个数据库中的所有表。

所以我希望输出看起来像这样:

Database | Table_name
Database1 | Table_1
Database1 | Table_2
Database1 | Table_3
Database2 | Table_1
etc..
Run Code Online (Sandbox Code Playgroud)

这就是我现在所拥有的:

from pyspark.sql.types import *

DatabaseDF = spark.sql(f"show databases")
df = spark.sql(f"show Tables FROM {DatabaseDF}")
#df = df.select("databaseName")
#list = [x["databaseName"] for x in df.collect()]

print(DatabaseDF)
display(DatabaseDF)

df = spark.sql(f"show Tables FROM {schemaName}")
df = df.select("TableName")
list = [x["TableName"] for x in df.collect()]

## Iterate through list of schema
for x in list:
###  INPUT Required: Change for target …
Run Code Online (Sandbox Code Playgroud)

python azure pyspark databricks azure-databricks

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

Spark SQL 中的合并 - 当源不匹配时

我正在 Databricks 中编写 Python 和 Spark SQL,并且使用 Spark 2.4.5。

我有两张桌子。

Create table IF NOT EXISTS db_xsi_ed_faits_shahgholi_ardalan.Destination
(
  id Int,
  Name string,
  Deleted int
) USING Delta;

Create table IF NOT EXISTS db_xsi_ed_faits_shahgholi_ardalan.Source
(
  id Int,
  Name string,
  Deleted int
) USING Delta;
Run Code Online (Sandbox Code Playgroud)

我需要在源和目标之间运行合并命令。我写了下面的命令

%sql
MERGE INTO db_xsi_ed_faits_shahgholi_ardalan.Destination AS D
USING db_xsi_ed_faits_shahgholi_ardalan.Source AS S
ON (S.id = D.id)
-- UPDATE
WHEN MATCHED AND S.Name <> D.Name THEN 
  UPDATE SET 
    D.Name = S.Name
-- INSERT    
WHEN NOT MATCHED THEN 
  INSERT (id, Name, …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql azure-databricks

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

Matplotlib 不在 Databricks 上打印任何图?

%matplotlib inline
corr = df.corr()
f, ax = plt.subplots(figsize=(11, 9))
ax = sns.heatmap(
    corr, 
    vmin=-1, vmax=1, center=0,
    cmap=sns.diverging_palette(20, 220, n=500),
    linewidths=.50, 
    cbar_kws={"shrink": .7},
    square=True
)

ax.set_xticklabels(
    ax.get_xticklabels(),
    rotation=45,
    horizontalalignment='right'
);
plt.show()
Run Code Online (Sandbox Code Playgroud)

此代码不会在天蓝色数据块上提供任何绘图显示,仅显示

<Figure size 1100x900 with 2 Axes>
Run Code Online (Sandbox Code Playgroud)

虽然相同的代码运行良好并且之前显示了正确的图,但不确定这里出了什么问题。即使我尝试这样做,我也会得到相同的输出。

mask = np.triu(np.ones_like(corr, dtype=bool))

f, ax = plt.subplots(figsize=(11, 9))

cmap = sns.diverging_palette(20, 220, as_cmap=True)

sns.heatmap(corr, mask=mask, cmap=cmap, vmax=0.3, center=0,
            square=True, linewidths=.1, cbar_kws={"shrink": .7})
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib seaborn azure-databricks

6
推荐指数
2
解决办法
5790
查看次数