目前,我所有的数据文件都存储在Azure Data Lake Store中。我需要处理这些大多数为csv格式的文件。该处理将在这些文件上运行作业,以提取与特定场景有关的日期或特定事件的特定数据(例如Data)的各种信息,或从多个表/文件添加数据。这些作业每天通过数据工厂(v1或v2)中的u-sql作业运行,然后发送到powerBI进行可视化。
使用ADLA进行所有这些处理,我觉得处理需要很多时间,而且看起来非常昂贵。我建议我将Azure Databricks用于上述过程。有人可以帮助我朝着两者之间的方向发展吗?我可以将所有U-sql作业修改为Databricks笔记本格式吗?
我正在尝试制作一个 pandas UDF,它接受两列具有整数值的数据,并根据这些值之间的差异返回一个小数数组,其长度等于上述差异。
到目前为止,这是我的尝试,我一直在尝试很多不同的方法,试图让它发挥作用,但这是总体思路
from pyspark.sql.functions import pandas_udf, PandasUDFType
from pyspark.sql.types import *
import pandas as pd
@pandas_udf(ArrayType(DecimalType()), PandasUDFType.SCALAR)
def zero_pad(x, y):
buffer = []
for i in range(0, (x - y)):
buffer.append(0.0)
return buffer
Run Code Online (Sandbox Code Playgroud)
我的使用方法如下:
df = df.withColumn("zero_list", zero_pad(df.x, df.y))
Run Code Online (Sandbox Code Playgroud)
最终结果是df一个名为“zero_list”的新列,该ArrayType(DecimalType())列看起来[0.0, 0.0, 0.0, ...]长度为(df.x - df.y)。
错误消息非常笼统,几乎不值得发布,只是“作业因阶段失败而中止”,它只能追溯到我执行以下操作的代码部分df.show():
Py4JJavaError Traceback (most recent call last)
<command-103561> in <module>()
---> 33 df.orderBy("z").show(n=1000)
/databricks/spark/python/pyspark/sql/dataframe.py in show(self, n, truncate, vertical)
350 """
351 if …Run Code Online (Sandbox Code Playgroud) python user-defined-functions apache-spark pyspark databricks
我正在尝试在 Databricks 笔记本中创建一个秘密范围。该笔记本正在使用我公司管理员创建的集群运行 - 我无权创建或编辑集群。我按照 Databricks 用户笔记本(https://docs.databricks.com/user-guide/secrets/example-secret-workflow.html#example-secret-workflow)中的说明进行操作,但出现错误:
/bin/bash: databricks: command not found
Run Code Online (Sandbox Code Playgroud)
下面是我尝试过的返回错误的代码:
%sh -e
databricks secrets create-scope --scope scopename
Run Code Online (Sandbox Code Playgroud)
使用 sh% 以便我可以在笔记本中运行命令行语言。我尝试过使用
%sh
Run Code Online (Sandbox Code Playgroud)
并且
%sh -e
Run Code Online (Sandbox Code Playgroud)
没有运气。
我应该能够使用此代码创建一个秘密范围,但没有运气。对于造成这种情况的原因有什么建议吗?还有其他人有同样的问题吗?
我正在使用 Spark Databricks 集群,并且想要添加自定义 Spark 配置。
有一个关于此的 Databricks 文档,但我没有得到任何线索,我应该如何以及进行哪些更改。有人可以分享配置 Databricks 集群的示例吗?
有没有办法查看Databricks集群中Spark的默认配置。
我在从 S3 读取 PARQUET 文件时遇到错误,原因是“final_height”列在同一分区中获得了 String 和 Double 类型。有关信息,parquet 文件中有 20 多列。我收到的错误是:
ERROR 1: Failed merging schema of file ".../part1.gz.parquet":
ERROR 2: Caused by: org.apache.spark.SparkException:
Failed to merge fields 'final_height' and 'final_height'. Failed to merge incompatible data types double and string
ERROR 3: com.databricks.sql.io.FileReadException:
Error while reading file ".../part1.gz.parquet".
Parquet column cannot be converted. Column: [final_height], Expected: StringType, Found: DOUBLE
ERROR 4: com.databricks.sql.io.FileReadException:
Error while reading file ".../part1.gz.parquet".
Parquet column cannot be converted. Column: [final_height], Expected: DoubleType, Found: BINARY
ERROR …Run Code Online (Sandbox Code Playgroud) 我正在运行一些操作来在 azure databricks 上聚合大量数据(约 600GB)。我最近注意到笔记本崩溃并且数据块返回以下错误。相同的代码之前适用于较小的 6 节点集群。将其升级到 12 个节点后,我开始遇到此问题,我怀疑这是一个配置问题。
请提供任何帮助,我使用默认的 Spark 配置,分区数 = 200,并且我的节点上有 88 个执行程序。
Thanks
Internal error, sorry. Attach your notebook to a different cluster or restart the current cluster.
java.lang.RuntimeException: abort: DriverClient destroyed
at com.databricks.backend.daemon.driver.DriverClient.$anonfun$poll$3(DriverClient.scala:381)
at scala.concurrent.Future.$anonfun$flatMap$1(Future.scala:307)
at scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:41)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
at com.databricks.threading.NamedExecutor$$anon$2.$anonfun$run$1(NamedExecutor.scala:335)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at com.databricks.logging.UsageLogging.$anonfun$withAttributionContext$1(UsageLogging.scala:238)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
at com.databricks.logging.UsageLogging.withAttributionContext(UsageLogging.scala:233)
at com.databricks.logging.UsageLogging.withAttributionContext$(UsageLogging.scala:230)
at com.databricks.threading.NamedExecutor.withAttributionContext(NamedExecutor.scala:265)
at com.databricks.threading.NamedExecutor$$anon$2.run(NamedExecutor.scala:335)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Run Code Online (Sandbox Code Playgroud) 我正在运行 Databricks Community Edition,我想从以下 mnt 目录中删除文件
/mnt/driver-daemon/jars
我运行 dbutils 命令:
dbutils.fs.rm('/mnt/driver-daemon/jars/', True)
但是,当我运行命令时,我收到以下消息(这基本上意味着该文件夹尚未被删除)
Out[1]: False
有人可以让我知道我哪里出错了吗?理想情况下,我想删除 jars 文件夹中的所有文件,但是,如果有人可以帮助展示如何删除该文件夹,那就足够了。
我们有一个机器学习分类器模型,使用 pandas 数据框和标准 sklearn 管道(StandardScaler、RandomForestClassifier、GridSearchCV 等)进行训练。我们正在开发 Databricks,并希望使用 Spark 提供的并行计算功能将该管道扩展到大型数据集。
将 sklearn 管道转换为并行计算的最快方法是什么?(我们可以根据需要轻松地在 pandas 和 Spark DF 之间切换。)
就上下文而言,我们的选择似乎是:
对于选项 2,Spark-Sklearn 似乎已被弃用,但 Databricks建议我们使用 joblibspark。然而,这在 Databricks 上引发了一个例外:
from sklearn import svm, datasets
from sklearn.model_selection import GridSearchCV
from joblibspark import register_spark
from sklearn.utils import parallel_backend
register_spark() # register spark backend
iris = datasets.load_iris()
parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
svr = svm.SVC(gamma='auto')
clf = GridSearchCV(svr, parameters, cv=5)
with parallel_backend('spark', n_jobs=3):
clf.fit(iris.data, iris.target)
Run Code Online (Sandbox Code Playgroud)
提高
py4j.security.Py4JSecurityException: …Run Code Online (Sandbox Code Playgroud) 我在 Azure DevOps 中运行以下任务,它总是挂起等待输入?为什么我的 bash 自动供给不工作?
databricksUrl=https://...
databricksToken=*****
databricks configure --token << EOF
$(databricksUrl)
$(databricksToken)
EOF
Run Code Online (Sandbox Code Playgroud) 因为在 SQL Server 中,我们可以声明变量, declare @sparksql='<any query/value/string>'但在 Spark sql 中可以使用什么替代方法。这样我们就不需要对任何值/查询/字符串进行硬编码。
databricks ×10
apache-spark ×4
pyspark ×3
azure ×2
python ×2
amazon-s3 ×1
azure-devops ×1
parquet ×1
scala ×1
scikit-learn ×1
secret-key ×1
u-sql ×1