标签: databricks

如何计算databricks笔记本中命令单元所花费的执行时间

我需要知道执行每个笔记本中的命令单元列表所需的时间。Databricks 显示“命令花费了 x 秒数”来执行。与显示的执行时间类似,我需要捕获执行笔记本中所有命令所需的时间。

在此输入图像描述

在此输入图像描述

scala databricks

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

Apache Spark 读取 UTF-16 CSV 文件

我正在尝试读取以 UTF-16 编码的 CSV 文件。

val test = spark.read
.format("com.databricks.spark.csv")
.option("header", "true")
.option("inferSchema", "true")
.option("delimiter",";")
.option("dateFormat", "yyyy-MM-dd HH:mm:ss.SSS")
.option("encoding", "UTF-16")
.option("charset", "ISO-8859-1")
.load("...")
Run Code Online (Sandbox Code Playgroud)

结果我得到了额外的行:

在此处输入图片说明

Spark 是否可能只能使用 UTF-8 编码?或者还有其他方法可以将 UTF-16 CSV 读入数据帧?

scala apache-spark apache-spark-sql spark-dataframe databricks

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

从 Spark 到雪花的连接

我写这篇文章不是为了问问题,而是分享知识。我正在使用 Spark 连接到雪花。但我无法访问雪花。数据块中的内部 JDBC 驱动程序似乎有问题。

这是我得到的错误。

java.lang.NoClassDefFoundError:net/snowflake/client/jdbc/internal/snowflake/common/core/S3FileEncryptionMaterial
Run Code Online (Sandbox Code Playgroud)

我尝试了许多版本的雪花 jdbc 驱动程序和雪花驱动程序。好像我可以匹配到正确的。

apache-spark apache-spark-sql snowflake-cloud-data-platform databricks

6
推荐指数
3
解决办法
2745
查看次数

在expr()中使用lit()

该行:

df.withColumn("test", expr("concat(lon, lat)")) 
Run Code Online (Sandbox Code Playgroud)

可以正常工作,但是

df.withColumn("test", expr("concat(lon, lit(','), lat)"))
Run Code Online (Sandbox Code Playgroud)

产生以下异常:

org.apache.spark.sql.AnalysisException:未定义的函数:'lit'。该功能既不是注册的临时功能,也不是在数据库“默认”中注册的永久功能。org.apache.spark.sql.catalyst.analysis.Analyzer $ LookupFunctions $$ anonfun $ apply $ 15 $ anonfun $ applyOrElse $ 49.apply(Analyzer.scala:1198)的第1行pos 12

为什么?解决方法是什么?

scala apache-spark apache-spark-sql databricks

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

如何在 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 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万
查看次数

如何在 Databricks 上使用 Dask

我想在 Databricks 上使用 Dask。这应该是可能的(我不明白为什么不可以)。如果我导入它,会发生两种情况之一,要么我得到一个ImportError,但是当我安装distributed来解决这个问题时,DataBricks 只是说Cancelled没有抛出任何错误。

dask databricks dask-distributed azure-databricks

6
推荐指数
3
解决办法
5444
查看次数

如何在databricks中的SQL语句中使用变量?

我想在 where 子句中使用带有两个变量的 WHERE 语句。我对此进行了研究,了解如何在 Databricks 中的 SQL 语句中使用变量以及使用 Python 插入变量,但不起作用。我尝试实施所提供的解决方案,但它不起作用。

a= 17091990
b = 30091990

df = spark.sql(' SELECT * FROM table WHERE date between "a" AND "b" ')
Run Code Online (Sandbox Code Playgroud)

databricks

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