我正在尝试与 Databricks 进行合并,但收到错误:
UnsupportedOperationException: Cannot perform Merge as multiple source rows matched and attempted to modify the same
target row in the Delta table in possibly conflicting ways.
Run Code Online (Sandbox Code Playgroud)
我在 SO 上多次看到这个问题,并且我知道如果源数据集的多行匹配并且合并尝试更新目标 Delta 表的相同行,则合并操作可能会失败。
简而言之,当源表有多行尝试更新同一目标行时,就会发生这种情况。如果更新表包含具有相同 ID 的记录,则可能会发生这种情况。就我而言,我认为这不适用。
有人可以看一下我的代码,如果他们能发现任何明显的东西,请告诉我
(deltadf.alias("t")
.merge(
df.alias("s"),
"s.primary_key_hash = t.primary_key_hash")
.whenMatchedUpdateAll("s.change_key_hash <> t.change_key_hash")
.whenNotMatchedInsertAll()
.execute()
)
Run Code Online (Sandbox Code Playgroud)
样本 deltadf
样本 df
请原谅这些图像。我正在努力使用标记语言添加数据
图中的波浪线代表什么?
当我将鼠标悬停在波浪线上时,标记的实际错误是:
导入“pyspark.sql.functions”无法解决Pylance
我不确定这意味着什么,但我在 Visual Studio Code 中几乎所有函数都收到错误。
我该如何解决?
有人可以让我知道如何从 Azure sql server 上存在的表在 Azure Databricks 中创建表吗?(假设Databricks已经有到sql服务器的jdbc连接)。
例如,如果我的数据湖中的某个位置不存在该表,则以下命令将创建一个表。
CREATE TABLE IF NOT EXISTS newDB.MyTable USING delta LOCATION
'/mnt/dblake/BASE/Public/Adventureworks/delta/SalesLT.Product/'
Run Code Online (Sandbox Code Playgroud)
我想做同样的事情,但使用 SQL Server 上现有的表?
我的 Azure 帐户拥有以下权限
但是,当我想“为应用程序添加角色分配”时,我注意到我用于添加角色的帐户已被禁用,请参见图片
有人可以告诉我,当我添加角色的帐户已被禁用时,是否确实可以添加应用程序?
我修改了 @Bhagyashree 善意提供的一些代码,试图在 ADLS Gen 2 上安装 abfss
container_name = "root"
storage_account = "mystorageaccount"
key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
url = "abfss://" + container_name + "@" + storage_account + ".dfs.core.windows.net/"
config = "fs.azure.account.key." + storage_account + ".blob.core.windows.net"
mount_folder = "/mnt/lake"
mounted_list = dbutils.fs.mounts()
mounted_exist = False
for item in mounted_list:
if mount_folder in item[0]:
mounted_exist = True
break
if not mounted_exist:
dbutils.fs.mount(source = url, mount_point = mount_folder, extra_configs = {config : key})
Run Code Online (Sandbox Code Playgroud)
目标是实现如下所示的安装
但我得到了错误
IllegalArgumentException: Unsupported Azure Scheme: abfss
Run Code Online (Sandbox Code Playgroud)
关于为什么我收到错误有什么想法吗?
我已经成功创建了 Great_Expectation 结果,我想将期望结果输出到 html 文件。
很少有链接强调如何使用所谓的“数据文档”以人类可读的方式显示结果https://docs.greatexpectations.io/en/latest/guides/tutorials/getting_started/set_up_data_docs.html#tutorials-getting-started -设置数据文档
但说实话,文档非常难以理解。
我的期望只是验证数据集中的乘客数量在 1 到 6 之间。我希望帮助使用“数据文档”将结果输出到文件夹,或者可以将数据输出到文件夹:
import great_expectations as ge
import great_expectations.dataset.sparkdf_dataset
from great_expectations.dataset.sparkdf_dataset import SparkDFDataset
from pyspark.sql.types import StructType, StructField, IntegerType, StringType, BooleanType
from great_expectations.data_asset import DataAsset
from great_expectations.data_context.types.base import DataContextConfig, DatasourceConfig, FilesystemStoreBackendDefaults
from great_expectations.data_context import BaseDataContext
from great_expectations.data_context.types.resource_identifiers import ValidationResultIdentifier
from datetime import datetime
from great_expectations.data_context import BaseDataContext
df_taxi = spark.read.csv('abfss://root@adlspretbiukadlsdev.dfs.core.windows.net/RAW/LANDING/yellow_trip_data_sample_2019-01.csv', inferSchema=True, header=True)
taxi_rides = SparkDFDataset(df_taxi)
taxi_rides.expect_column_value_lengths_to_be_between(column='passenger_count', min_value=1, max_value=6)
taxi_rides.save_expectation_suite()
Run Code Online (Sandbox Code Playgroud)
该代码是从 Apache Spark 运行的。
如果有人能给我指出正确的方向,我就能找到答案。
apache-spark pyspark databricks azure-databricks great-expectations
我正在尝试使用 PySpark 从 Databricks Hive_Metastore 读取数据。在下面的屏幕截图中,我尝试读取位于数据库中的名为“trips”的表nyctaxi。
通常,如果该表位于 AzureSQL 服务器上,我将使用如下代码:
df = spark.read.format("jdbc")\
.option("url", jdbcUrl)\
.option("dbtable", tableName)\
.load()
Run Code Online (Sandbox Code Playgroud)
或者,如果该表位于 ADLS 中,我将使用类似于以下内容的代码:
df = spark.read.csv("adl://mylake.azuredatalakestore.net/tableName.csv",header=True)
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何使用 PySpark 从下面的 Databricks 数据库中读取表格:
附加的屏幕截图我也有帮助
好吧,我刚刚意识到我认为我应该问如何从“samples”meta_store 中读取表格。
无论如何,我希望帮助您从nyctaxi数据库中读取“trips”表。