小编Ale*_*Ott的帖子

Cassandra无法创建Java虚拟机

我在Mac OS上运行,cassandra -f并且立即发生这种情况:

[0.002s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:/usr/local/apache-cassandra-3.0.10/logs/gc.log instead.
Unrecognized VM option 'UseParNewGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.```
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样。我做了适当的

export CASSANDRA_HOME=/usr/local/apache-cassandra-3.0.10
export PATH=$PATH:$CASSANDRA_HOME/bin
Run Code Online (Sandbox Code Playgroud)

但仍然无法正常工作。

我的Java版本有问题吗?如何进行Cassandra的全新安装/使它正常工作?

java cassandra

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

azure pyspark从jar注册udf失败UDFRegistration

我在注册 java 文件中的一些 udf 时遇到问题。我有几种方法,但它们都会返回:

无法执行用户定义的函数(UDFRegistration$$Lambda$6068/1550981127: (double, double) => double)

首先我尝试了这种方法:

from pyspark.context import SparkContext, SparkConf
from pyspark.sql import SparkSession
from pyspark.sql.types import *
conf=SparkConf()
conf.set('spark.driver.extraClassPath', 'dbfs:/FileStore/jars/4b129434_12cd_4f2a_ab27_baaefe904857-scala_udf_similarity_0_0_7-35e3b.jar')
conf.set('spark.jars', 'dbfs:/FileStore/jars/4b129434_12cd_4f2a_ab27_baaefe904857-scala_udf_similarity_0_0_7-35e3b.jar')

spark = SparkSession(sc)
sc = SparkContext.getOrCreate(conf=conf)
#spark.sparkContext.addPyFile("dbfs:/FileStore/jars/4b129434_12cd_4f2a_ab27_baaefe904857-scala_udf_similarity_0_0_7-35e3b.jar")
udfs = [
    ('jaro_winkler_sim', 'JaroWinklerSimilarity',DoubleType()),
    ('jaccard_sim', 'JaccardSimilarity',DoubleType()),
    ('cosine_distance', 'CosineDistance',DoubleType()),
    ('Dmetaphone', 'DoubleMetaphone',StringType()),
    ('QgramTokeniser', 'QgramTokeniser',StringType())
]
for a,b,c in udfs:
    spark.udf.registerJavaFunction(a, 'uk.gov.moj.dash.linkage.'+ b, c)

linker = Splink(settings, spark, df_l=df_l, df_r=df_r)
df_e = linker.get_scored_comparisons()
Run Code Online (Sandbox Code Playgroud)

接下来我尝试将 jar 和 extraClassPath 移动到集群配置。

spark.jars dbfs:/FileStore/jars/4b129434_12cd_4f2a_ab27_baaefe904857-scala_udf_similarity_0_0_7-35e3b.jar
spark.driver.extraClassPath dbfs:/FileStore/jars/4b129434_12cd_4f2a_ab27_baaefe904857-scala_udf_similarity_0_0_7-35e3b.jar
Run Code Online (Sandbox Code Playgroud)

我将它们注册到我的脚本中,如下所示:

from pyspark.context import …
Run Code Online (Sandbox Code Playgroud)

azure apache-spark pyspark databricks azure-databricks

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

如何在 GCS 中的增量表之上创建 BQ 外部表并仅显示最新快照

我正在尝试在增量表之上创建一个外部 BQ 外部表,该表使用谷歌存储作为存储层。在增量表上,我们执行 DML,其中包括删除。

我可以在所有增量文件都存在的 gs 存储桶顶部创建一个 BQ 外部表。然而,它甚至会拉取删除记录,因为 BQ 外部表无法读取 delta 的事务日志,其中它说明要考虑哪些 parquet 文件以及要删除哪些文件。

除了以编程方式将数据从 delta 复制到 BQ 之外,有没有一种方法可以将 BQ 中的 delta 表(gs 位置)的最新快照公开为外部表?

google-cloud-storage google-bigquery pyspark delta-lake

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

在工作时间启动 Azure Databricks 群集

我意识到 Databricks 集群有超时,这意味着 N 分钟后它将关闭集群。这是一个示例。

在此输入图像描述

尽管这个功能很好,但它并不是我们所需要的。我们的团队工作日从上午 8 点工作到下午 6 点。我们希望集群能够在上午 8 点自动启动,在工作时间内保持“始终开启”状态,然后在下午 6 点之后超时。合理?

问:这可能吗?

databricks azure-databricks

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

如何在编写蒸汽火花数据帧时指定增量表属性

假设我有一个流数据帧,并且我正在将其写入 Databricks Delta Lake:

someStreamingDf.writeStream
  .format("delta")
  .outputMode("append")
  .start("targetPath")

Run Code Online (Sandbox Code Playgroud)

然后从中创建一个增量表:

spark.sql("CREATE TABLE <TBL_NAME> USING DELTA LOCATION '<targetPath>'
TBLPROPERTIES ('delta.autoOptimize.optimizeWrite'=true)")

Run Code Online (Sandbox Code Playgroud)

失败了AnalysisException: The specified properties do not match the existing properties at <targetPath>

我知道我可以预先创建一个表:

CREATE TABLE <TBL_NAME> (
  //columns
) 
USING DELTA LOCATION "< targetPath >"
TBLPROPERTIES (
  "delta.autoOptimize.optimizeWrite" = true, 
  ....
) 
Run Code Online (Sandbox Code Playgroud)

然后就写入它,但是使用所有列及其类型编写此 SQL 看起来像是一些额外/不必要的工作。那么有没有办法在写入增量表(第一次)时而不是事先指定这些 TBLPROPERTIES?

apache-spark databricks spark-structured-streaming delta-lake

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

Azure Databricks:VNet 中群集上的自定义库出错

我们在 VNet 中使用 Azure Databricks 和单节点群集(运行时版本 10.4 LTS)。我们还需要使用自定义/私有 python 模块(wheel)。

在集群上安装库后,一切正常,但在集群重新启动并安装库后,执行任何单元时都会出现以下错误(取消/重新附加不能解决问题):

+ Failure starting repl. Try detaching and re-attaching the notebook.

java.lang.Exception: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
    at org.apache.spark.sql.hive.HiveExternalCatalog.$anonfun$withClient$2(HiveExternalCatalog.scala:160)
    at org.apache.spark.sql.hive.HiveExternalCatalog.maybeSynchronized(HiveExternalCatalog.scala:112)
    at org.apache.spark.sql.hive.HiveExternalCatalog.$anonfun$withClient$1(HiveExternalCatalog.scala:150)
    at com.databricks.backend.daemon.driver.ProgressReporter$.withStatusCode(ProgressReporter.scala:364)
    at com.databricks.spark.util.SparkDatabricksProgressReporter$.withStatusCode(ProgressReporter.scala:34)
    at org.apache.spark.sql.hive.HiveExternalCatalog.withClient(HiveExternalCatalog.scala:149)
    at org.apache.spark.sql.hive.HiveExternalCatalog.databaseExists(HiveExternalCatalog.scala:300)
    at org.apache.spark.sql.internal.SharedState.externalCatalog$lzycompute(SharedState.scala:201)
    at org.apache.spark.sql.internal.SharedState.externalCatalog(SharedState.scala:192)
    at org.apache.spark.sql.hive.HiveSessionStateBuilder.externalCatalog(HiveSessionStateBuilder.scala:59)
    at org.apache.spark.sql.hive.HiveSessionStateBuilder.$anonfun$resourceLoader$1(HiveSessionStateBuilder.scala:66)
    at org.apache.spark.sql.hive.HiveSessionResourceLoader.client$lzycompute(HiveSessionStateBuilder.scala:160)
    at org.apache.spark.sql.hive.HiveSessionResourceLoader.client(HiveSessionStateBuilder.scala:160)
    at org.apache.spark.sql.hive.HiveSessionResourceLoader.$anonfun$addJar$1(HiveSessionStateBuilder.scala:164)
    at org.apache.spark.sql.hive.HiveSessionResourceLoader.$anonfun$addJar$1$adapted(HiveSessionStateBuilder.scala:163)
    at scala.collection.immutable.List.foreach(List.scala:431)
    at org.apache.spark.sql.hive.HiveSessionResourceLoader.addJar(HiveSessionStateBuilder.scala:163)
    at org.apache.spark.sql.execution.command.AddJarsCommand.$anonfun$run$1(resources.scala:33)
    at org.apache.spark.sql.execution.command.AddJarsCommand.$anonfun$run$1$adapted(resources.scala:33)
    at scala.collection.immutable.Stream.foreach(Stream.scala:533)
    at org.apache.spark.sql.execution.command.AddJarsCommand.run(resources.scala:33)
    at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(commands.scala:80)
    at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(commands.scala:78)
    at org.apache.spark.sql.execution.command.ExecutedCommandExec.executeCollect(commands.scala:89)
    at org.apache.spark.sql.execution.QueryExecution$$anonfun$$nestedInanonfun$eagerlyExecuteCommands$1$1.$anonfun$applyOrElse$1(QueryExecution.scala:160) …
Run Code Online (Sandbox Code Playgroud)

python azure-virtual-network databricks azure-databricks

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

Azure databricks 存储库:如何通过 API 拉取

我正在使用 Azure DevOps 存储库将 Azure databricks 连接到我在 DevOps 中的存储库。我需要从 Azure DevOps 管道自动拉取。为此,我尝试使用 databricks API 进行拉取,但参考此链接,没有拉取方法。

按照说明并查看 swagger ,唯一可用的方法是: 仓库API 有没有办法通过 API 或 CLI 或任何其他方式以编程方式拉取?如果是,怎么办?

databricks azure-databricks databricks-repos

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

从 Azure Function App 写入增量表

我正在实现一个 3 跳数据管道,将每一层数据保存为 azure 存储帐户中的增量表。目前,我使用数据工厂或函数应用程序以 json 形式摄取数据,并在 databricks 中进行所有处理。

我的问题是:是否有任何 .Net 包可以将 Azure Function App 中提取的 json 文件直接写入存储帐户增量表?

.net c# azure-functions delta-lake

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

如何在 Databricks 中使用 OPTIMIZE ZORDER BY

我有两个数据框(来自三角洲湖表),它们通过 id 列进行左连接。

SD1、SD2

%sql
select
    a.columnA,
    b.columnB,
from sd1 a
left outer join sd2 b
on a.id = b.id

   
Run Code Online (Sandbox Code Playgroud)

问题是我的查询需要很长时间,寻找改进结果的方法我找到了OPTIMIZE ZORDER BY Youtube视频

根据视频,如果列将成为where条件的一部分,则在对列进行排序时似乎很有用。

但由于两个数据帧在连接条件中使用 id,因此对该列进行排序是否有趣?

spark.sql(f'OPTIMIZE delta.`{sd1_delta_table_path}` ZORDER BY (id)')
Run Code Online (Sandbox Code Playgroud)

我脑海中遵循的逻辑是,如果我们首先订购该列,那么寻找它们进行匹配所需的时间就会更少。它是否正确 ?

提前致谢

pyspark databricks azure-databricks delta-lake databricks-sql

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

使用 Databricks 删除数据库中的多个表

我正在尝试使用以下命令删除 databrick scala 中的多个表

select 'DROP TABLE ' + tableName from ABC where tableName LIKE 'in%'
Run Code Online (Sandbox Code Playgroud)

错误结果说

SQL 语句错误: AnalysisException:未找到表或视图:ABC

然而 ABC 数据库存在

谢谢

scala databricks databricks-sql

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