我想使用另一个笔记本在数据块中运行笔记本%run。另外,我希望能够将我正在运行的笔记本的路径作为参数发送到主笔记本。
不使用的原因dbutils.notebook.run是我将嵌套字典存储在调用的笔记本中,并且我想在主笔记本中使用它们。
我正在寻找类似的东西:
path = "/References/parameterDefinition/schemaRepository"
Run Code Online (Sandbox Code Playgroud)
%run <path variable>
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的系统中以独立模式运行 Spark。我的系统当前规格是8核和32GB内存。根据这篇文章,我计算 Spark 配置如下:
spark.driver.memory 2g
spark.executor.cores 3
spark.executor.instances 2
spark.executor.memory 20g
maximizeResourceAllocation TRUE
Run Code Online (Sandbox Code Playgroud)
我在我的 jupyter 笔记本中创建了 Spark 上下文,如下所示,并通过此检查并行度级别
sc = SparkContext()
sc.defaultParallelism
Run Code Online (Sandbox Code Playgroud)
默认并行度为 8。我的问题是,为什么它给我 8,即使我提到了 2 个核心?如果它没有给我系统的实际并行度,那么如何获得实际的并行度?
谢谢你!
我正在使用 Databricks 并尝试在同一个 Scala 笔记本中将数据帧从 Scala 传递到 Python。我使用以下方法将数据帧从 Python 传递到 Spark:
%python
python_df.registerTempTable("temp_table")
val scalaDF = table("temp_table")
Run Code Online (Sandbox Code Playgroud)
我如何反过来做同样的事情?非常感谢!!
我想使用 databricks cli:
databricks clusters list
Run Code Online (Sandbox Code Playgroud)
但这需要一个手动步骤,需要与用户进行交互工作:
databricks configure --token
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在无需手动干预的情况下使用 databricks cli,以便可以将其作为 ci/cd 管道的一部分运行?
我是Spark SQL的新手。我们正在将数据从SQL Server迁移到Databricks。我正在使用SPARK SQL。您能否建议以下日期函数在SPARK sql中实现以下功能?我可以看到datediff在spark sql中仅给出几天。
DATEDIFF(年,StartDate,EndDate)DATEDIFF(月,StartDate,EndDate)DATEDIFF(四分之一,StartDate,EndDate)
StackOverflow 的一位非常聪明的人帮助我将文件从 Databricks 复制到目录: copyfiles
我使用相同的原理在复制文件后删除文件,如链接所示:
for i in range (0, len(files)):
file = files[i].name
if now in file:
dbutils.fs.rm(files[i].path,'/mnt/adls2/demo/target/' + file)
print ('copied ' + file)
else:
print ('not copied ' + file)
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误:
TypeError: '/mnt/adls2/demo/target/' 的类型错误 - 需要类 bool 。
有人可以让我知道如何解决这个问题吗?我认为在最初使用命令复制文件后删除文件很简单dbutils.fs.rm
我在 Databricks delta 中有一个表,它由transaction_date. 我想将分区列更改为view_date. 我尝试删除该表,然后使用PARTITIONED BY (view_date).
然而,我的尝试失败了,因为实际文件驻留在 S3 中,即使我删除了一个 hive 表,分区也保持不变。有没有办法更改现有 Delta 表的分区?或者唯一的解决方案是删除实际数据并使用新指示的分区列重新加载它?
我正在 Databricks 上编写 Python 代码来处理一些数据和输出图。我希望能够将这些图形作为图片文件(.png 或其他东西,格式并不重要)保存到 DBFS。
代码:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'fruits':['apple','banana'], 'count': [1,2]})
plt.close()
df.set_index('fruits',inplace = True)
df.plot.bar()
# plt.show()
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情:
plt.savefig("/FileStore/my-file.png")
Run Code Online (Sandbox Code Playgroud)
[Errno 2] 没有那个文件或目录:'/FileStore/my-file.png'
fig = plt.gcf()
dbutils.fs.put("/dbfs/FileStore/my-file.png", fig)
Run Code Online (Sandbox Code Playgroud)
TypeError: 有错误的类型 - (,) 是预期的。
经过一些研究,我认为 fs.put 只有在您想保存文本文件时才有效。
运行上面的代码plt.show()会给你一个条形图 - 我希望能够将条形图作为图像保存到 DBFS。任何帮助表示赞赏,提前致谢!
我能够建立与 Databricks FileStore 的连接DBFS并访问文件存储。
使用 Pyspark 读取、写入和转换数据是可能的,但是当我尝试使用本地 Python API(例如pathlib或OS模块)时,我无法通过 DBFS 文件系统的第一级
我可以使用一个神奇的命令:
%fs ls dbfs:\mnt\my_fs\...哪个工作完美并列出所有子目录?
但如果我这样做,它会作为返回值os.listdir('\dbfs\mnt\my_fs\')返回['mount.err']
我已经在新集群上进行了测试,结果是相同的
我在 Databricks Runtine 版本 6.1 和 Apache Spark 2.4.4 上使用 Python
有谁能提供建议吗?
连接脚本:
我使用 Databricks CLI 库来存储根据 databricks 文档格式化的凭据:
def initialise_connection(secrets_func):
configs = secrets_func()
# Check if the mount exists
bMountExists = False
for item in dbutils.fs.ls("/mnt/"):
if str(item.name) == r"WFM/":
bMountExists = True
# drop if exists to refresh credentials …Run Code Online (Sandbox Code Playgroud) 我试过这个%fs ls dbfs:/mnt,但我想知道这会给我所有的挂载点吗?
databricks ×10
python ×4
pyspark ×3
apache-spark ×2
azure ×2
bash ×1
datediff ×1
delta-lake ×1
matplotlib ×1
scala ×1