标签: databricks

如何使用sparklyr访问Databricks数据库

在 Azure Databricks 环境中,我发现了软件包SparkRsparklyr.

从我的笔记本中SparkR,我设法连接到数据库:

library(SparkR)
DW <- sql("select * from mydb.sometable")
Run Code Online (Sandbox Code Playgroud)

它运行良好,但 SparkR 语法似乎与经典 R 语法相差太远(根据我的说法)。

所以我想尝试一下sparklyr,但我无法访问同一个数据库:

library(sparklyr)
sc <- spark_connect(method="databricks")
test <- spark_read_table(sc, "mydb.sometable")

Error : org.apache.spark.sql.AnalysisException: It is not allowed to add database prefix ...
Run Code Online (Sandbox Code Playgroud)

有什么问题吗?

谢谢 !!

r sparkr databricks sparklyr

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

了解 Spark 中序列化结果的总大小

我正在对 Databricks 中托管的巨大 Delta 表的数据框进行非常简单的操作。我面临的问题是,运行几个小时后,代码失败,并显示错误“作业因阶段失败而中止:59014 个任务的序列化结果的总大小 (4.0 GiB) 大于spark.driver.maxResultSize 4.0 GiB” ”。

我正在执行的任务是,我读取数据框中的增量表,添加一个新列用于创建存储桶(20个存储桶),并以覆盖模式保存表,将存储桶添加为另一个分区(已经有3个分区,这个新分区)列将是第四个分区)。因此,我没有在应用程序代码中执行任何会导致大量数据返回驱动程序的操作。下面给出的是示例代码

bucket_number = 20
inputDataframe = spark.read.table("huge_delta_table")
inputDataframe = inputDataframe.withColumn("bucket_key", (translate( substring(col("some_column"), 0, 16), "abcdefghijklmnopqrstuvwxyz", "01234567890123456789012345").cast(LongType()) %buckets_number)+1)
inputDatafrme.write.format("delta")
input.write.format("delta").mode("overwrite").option("overwriteSchema", "true").partitionBy("existing_partition_column1","existing_partition_column2","existing_partition_column3","bucket_key") \
.saveAsTable("huge_delta_table")
Run Code Online (Sandbox Code Playgroud)

我想知道,是否是因为大量的任务导致 Spark 的内部结果元数据变得巨大(当出于协调目的而传回驱动程序时)?

apache-spark pyspark databricks

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

ConsoleBuffer' 对象没有属性 'isatty'

我正在 databricks 社区版上使用 Sparkdl 进行图像分类。我添加了所有图书馆的。我已经使用图像数据创建了数据框。

from pyspark.ml.classification import LogisticRegression
from pyspark.ml import Pipeline
from sparkdl import DeepImageFeaturizer 

featurizer = DeepImageFeaturizer(inputCol="image", outputCol="features", modelName="InceptionV3")
lr = LogisticRegression(maxIter=20, regParam=0.05, elasticNetParam=0.3, labelCol="label")
p = Pipeline(stages=[featurizer, lr])

p_model = p.fit(train_df)   




    AttributeError                            Traceback (most recent call last)
<command-2468766328144961> in <module>()
      7 p = Pipeline(stages=[featurizer, lr])
      8 
----> 9 p_model = p.fit(train_df)

/databricks/spark/python/pyspark/ml/base.py in fit(self, dataset, params)
     62                 return self.copy(params)._fit(dataset)
     63             else:
---> 64                 return self._fit(dataset)
     65         else:
     66             raise ValueError("Params must be either a param map …
Run Code Online (Sandbox Code Playgroud)

apache-spark deep-learning databricks

0
推荐指数
1
解决办法
3873
查看次数

将sql数据表转换为sparklyr数据框

我将 data.csv 上传到 Microsoft Azure 存储资源管理器。然后复制url并在databricks中创建一个表。

%sql 
DROP TABLE If EXISTS data; 
CREATE TABLE IF NOT EXISTS data 
USING CSV 
OPTIONS (header "true", inferSchema "true") 
LOCATION "url/data.csv" 
Run Code Online (Sandbox Code Playgroud)

现在我想使用sparklyr来操作“数据”。

我应该如何将上述数据转换为 Sparklyr 数据框以充分利用 Sparklyr 的潜力?

r databricks sparklyr tidyverse

0
推荐指数
1
解决办法
1936
查看次数

基于列合并两个 Spark 数据框

我有 2 个数据框,需要根据列(员工代码)合并它们。请注意,数据框大约有 75 列,因此我提供了一个示例数据集来获取一些建议/示例解决方案。我正在使用 databricks,数据集是从 S3 读取的。

以下是我的 2 个数据框:

DATAFRAME - 1

|-----------------------------------------------------------------------------------|
|EMP_CODE   |COLUMN1|COLUMN2|COLUMN3|COLUMN4|COLUMN5|COLUMN6|COLUMN7|COLUMN8|COLUMN9|
|-----------------------------------------------------------------------------------|
|A10001     |   B   |       |       |       |       |       |       |       |       |
|-----------------------------------------------------------------------------------|


DATAFRAME - 2
|-----------------------------------------------------------------------------------|
|EMP_CODE   |COLUMN1|COLUMN2|COLUMN3|COLUMN4|COLUMN5|COLUMN6|COLUMN7|COLUMN8|COLUMN9|
|-----------------------------------------------------------------------------------|
|A10001     |       |       |       |       |   C   |       |       |       |       |   
|B10001     |       |       |       |       |       |       |       |       |T2     |
|A10001     |       |       |       |       |       |       |       |   B   |       |
|A10001     |       |       |   C   |       | …
Run Code Online (Sandbox Code Playgroud)

python apache-spark pyspark databricks

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

如何在 Databricks 中安装 PYODBC

我必须在 Databricks 中安装 pyodbc 模块。我曾尝试使用此命令 ( pip install pyodbc) 但由于以下错误而失败。

错误信息

pyodbc python-3.x databricks azure-databricks

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

撤消数据块笔记本中已删除的单元格?

当我们删除它时,有什么方法可以恢复 databricks notebook 中的命令单元吗?我在 databricks 中没有看到任何建议撤消已删除的单元格。数据块版本是 v2.99。 在此处输入图片说明

在此处输入图片说明

spark-notebook databricks

0
推荐指数
1
解决办法
1783
查看次数

“SparkSession”对象没有属性“databricks”

databricks 和 Spark 新手,我尝试运行以下命令并遇到此错误

spark.databricks.delta.retentionDurationCheck.enabled= "false"
Run Code Online (Sandbox Code Playgroud)

错误:'SparkSession' object has no attribute 'databricks'

apache-spark pyspark databricks delta-lake

0
推荐指数
1
解决办法
2997
查看次数

使用 cmd 和 R 配置数据块

我正在尝试使用 databricks cli 并调用 databricks configure 这就是我从 cmd 中执行的操作

  somepath>databricks configure --token
  Databricks Host (should begin with https://): my_https_address 
  Token: my_token
Run Code Online (Sandbox Code Playgroud)

我想使用 R 调用相同的命令。所以我做了:

  tool.control <- c('databricks configure --token'
                    ,'my_https_address'
                    ,'my_token')

 shell(tool.control)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

  Error in system(command, as.integer(flag), f, stdout, stderr, timeout) : 
  character string expected as first argument
Run Code Online (Sandbox Code Playgroud)

我该如何纠正?

编辑:尝试评论中的建议后,我收到此错误:

Databricks Host (should begin with https://): Aborted!
'https:' is not recognized as an internal or external command,
 operable program or batch file.
 'my_token' is not recognized as an internal or …
Run Code Online (Sandbox Code Playgroud)

command-line r databricks azure-databricks

0
推荐指数
1
解决办法
2687
查看次数

我的文件系统名称和存储帐户名称是什么?我该如何找到它?

我正在尝试将 databricks 连接到 azure data Lake gen2 中的 blob 容器。

我无法在任何地方找到我的文件系统名称或我的存储帐户名称以进行连接。

dbutils.fs.ls("abfss://文件系统名称@存储帐户名称.dfs.core.windows.net/")

谢谢。如果有人可以参考一个例子那就太好了。

databricks

0
推荐指数
1
解决办法
6755
查看次数