我正在使用带有 ADLS存储层的 Azure Databricks。我怀疑DBFS 和 Filestore之间有什么区别?知道吗,Filestore 中可以存储的文件的最大大小是多少?我们可以将输出文件存储在 Filestore 中然后覆盖它们吗?
谢谢。
在 Databricks 中,如果我的作业请求 json 为:
{
"job_id": 1,
"notebook_params": {
"name": "john doe",
"age": "35"
}
}
Run Code Online (Sandbox Code Playgroud)
如何访问作业附加笔记本内的笔记本参数?
amazon-web-services databricks dbutils aws-databricks databricks-workflows
Databricks 最近的这篇博客文章https://databricks.com/blog/2021/10/04/pandas-api-on-upcoming-apache-spark-3-2.html表示,pandas 程序所需的唯一更改是在 pyspark.pandas 下运行它是更改from pandas import read_csv为from pyspark.pandas import read_csv.
但这似乎不对。那么所有其他(非read_csv)对 pandas 的引用呢?import pandas as pd改变不是正确的方法吗import pyspark.pandas as pd?然后现有程序中的所有其他 pandas 引用都将指向 pandas 的 pyspark 版本。
我对 Lake House 架构模式了解得越多,并关注 Databricks 的演示,我就几乎看不到任何关于传统数据仓库(Kimball 方法)中的维度建模的讨论。我知道计算和存储要便宜得多,但是如果没有数据建模,查询性能是否会有更大的影响?从 Spark 3.0 开始,我看到了所有很酷的功能,例如自适应查询引擎、动态分区修剪等,但是维度建模是否因此而过时了?如果有人使用 Databricks 实现维度建模,请分享您的想法?
bigdata apache-spark databricks azure-databricks databricks-sql
我正在使用带有 Scala 2.12 的 Databricks 集群版本 7.3 LTS。这个版本确实使用了Log4J。
官方文档说它使用Log4J版本1.2.17。这是否意味着我没有这个漏洞?如果这样做,我可以在集群上手动修补它,还是需要将集群升级到下一个 LTS 版本?
我有一个简单的 Spark 作业,将数据流式传输到 Delta 表。该表非常小并且没有分区。
创建了许多小镶木地板文件。
按照文档(https://docs.delta.io/1.0.0/best-practices.html)中的建议,我添加了每天运行一次的压缩作业。
val path = "..."
val numFiles = 16
spark.read
.format("delta")
.load(path)
.repartition(numFiles)
.write
.option("dataChange", "false")
.format("delta")
.mode("overwrite")
.save(path)
Run Code Online (Sandbox Code Playgroud)
每次压缩作业运行时,流作业都会出现以下异常:
org.apache.spark.sql.delta.ConcurrentAppendException: Files were added to the root of the table by a concurrent update. Please try the operation again.
Run Code Online (Sandbox Code Playgroud)
我尝试将以下配置参数添加到流作业中:
spark.databricks.delta.retryWriteConflict.enabled = true # would be false by default
spark.databricks.delta.retryWriteConflict.limit = 3 # optionally limit the maximum amout of retries
Run Code Online (Sandbox Code Playgroud)
这没有帮助。
知道如何解决这个问题吗?
当我尝试在本地使用 koalas.DataFrame.to_delta() 将 Koalas DataFrame 直接写入增量表时,出现以下 Pyspark 异常:
java.lang.ClassNotFoundException: Failed to find data source: delta
编辑:忽略下面,直接调用 Pyspark 也会出现问题。
如果我将 Koalas DataFrame 转换为 Spark DataFrame 然后写入 delta,我似乎没有问题。是否存在 Koalas 不知道但 Pyspark 知道的底层库?看起来很奇怪,因为我认为在幕后使用相同的 Pyspark 模块...我应该注意到 Koalas to_delta() 方法似乎确实在 Databricks 上工作,这表明我的本地设置缺少与 Delta 相关的库。
失败的考拉代码:
kdf = ks.DataFrame({'eid': [1, 2, 3],
'contigName': ['chr1', 'chr2', 'chr3'],
'phen1': [0.123, 0.456, 0.789],
'phen2': [0.987, 0.654, 0.321]})
kdf.to_delta(path='tmp/test.delta', mode='overwrite')
Run Code Online (Sandbox Code Playgroud)
编辑:不让考拉 Spark 到 Delta 代码:
kdf = ks.DataFrame({'eid': [1, 2, 3],
'contigName': ['chr1', 'chr2', 'chr3'],
'phen1': [0.123, 0.456, 0.789], …Run Code Online (Sandbox Code Playgroud) 我的 databricks python 笔记本中当前有多个 %run 语句,在多行中,一次运行它们时可以工作。我想知道是否有一种方法将它们合并到一个单元格中,这样我就不必单独运行每个单元格。我尝试过将它们放在一起但不断出现错误
%run {location of file}
%run {location of file}
...
%run {location of file}
Run Code Online (Sandbox Code Playgroud)
错误:
Failed to parse %run command: string matching regex `\$[\w_]+' expected but `%' found)
Run Code Online (Sandbox Code Playgroud)
以下是我根据 OneCricketeer 的建议进行的尝试。事实证明这个解决方案并不能解决问题。
notebooks = [
('{location of file}'),
('{location of file}'),
('{location of file}')]
for n in notebooks:
dbutils.notebook.run(n,60)
print('Finished loading notebook ' + n)
Run Code Online (Sandbox Code Playgroud) DELTA不具有CREATE TABLE LIKE。它确实有CTAS。
我只想复制表的定义LOCATION,但还要指定.
例如,这不起作用:
CREATE TABLE IF NOT EXISTS NEW_CUSTOMER_FEED
AS SELECT * from NEW_CUSTOMER_FEED WHERE 1 = 0
LOCATION '/atRest/data'
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
我可以迭代 databricks 笔记本中的小部件吗?像这样的伪代码?
# NB - not valid
inputs = {widget.name: widget.value for widget in dbutils.widgets}
Run Code Online (Sandbox Code Playgroud) databricks ×10
delta-lake ×3
apache-spark ×2
azure ×2
dbutils ×2
pyspark ×2
python ×2
bigdata ×1
log4j ×1
pandas ×1
parquet ×1
spark-koalas ×1