我正在创建一个 mlflow 实验,它将逻辑回归模型以及指标和工件记录在一起。
import mlflow
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import precision_recall_fscore_support
with mlflow.start_run(run_name=run_name, experiment_id=experiment_id):
logreg = LogisticRegression()
logreg.fit(x_train, y_train)
print('training over', flush=True)
y_pred = logreg.predict(x_test)
mlflow.sklearn.log_model(logreg, "model")
mlflow.log_metric("f1", precision_recall_fscore_support(y_test, y_pred, average='weighted')[2])
mlflow.log_artifact(x_train.to_csv('train.csv')
Run Code Online (Sandbox Code Playgroud)
对于某些数据 ( x_train, y_train, x_test, y_test)
有没有办法访问此 run_name 的特定实验 ID 的工件并读取train.csv和model?
我正在努力创建带有公司徽标的 databricks 笔记本模板。使用下面的代码显示图像会引发错误。
代码:
%md
<img src ='/test/image/MyImage.jpg'>
Run Code Online (Sandbox Code Playgroud)
错误:
HTTP ERROR 403: Invalid or missing CSRF token
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)
我缺少什么?
我目前有一个查询,可以提供每个标签的计数:
g.V().group().by(label).by(count())
然而,这会导致每个标签都有一列。我想投影两列“实体类型”和“计数”并计算每个标签的数量。到目前为止,这就是我所拥有的一切,但它是不正确的:
g.V().project('Entity Type','Count')
.by(label)
.by(groupCount())
Run Code Online (Sandbox Code Playgroud) 我正在使用 AWS keyspaces 并尝试从 C# 插入数据,但收到此错误。“此操作不支持一致性级别 LOCAL_ONE。支持的一致性级别为:LOCAL_QUORUM”。有人可以帮忙吗?
AWS密钥空间
CREATE KEYSPACE IF NOT EXISTS "DevOps"
WITH REPLICATION={'class': 'SingleRegionStrategy'} ;
Run Code Online (Sandbox Code Playgroud)
桌子
CREATE TABLE IF NOT EXISTS "DevOps"."projectdetails" (
"id" UUID PRIMARY KEY,
"name" text,
"lastupdatedtime" timestamp,
"baname" text,
"customerid" UUID)
Run Code Online (Sandbox Code Playgroud)
C# 代码
public async Task AddRecord(List<projectdetails> projectDetails)
{
try
{
if (projectDetails.Count > 0)
{
foreach (var item in projectDetails)
{
projectdetails projectData = new projectdetails();
projectData.id = item.id;
projectData.name = item.name;
projectData.baname = "Vishal";
projectData.lastupdatedtime = item.lastupdatedtime;
projectData.customerid = 1;
await …Run Code Online (Sandbox Code Playgroud) 我正在尝试在增量表之上创建一个外部 BQ 外部表,该表使用谷歌存储作为存储层。在增量表上,我们执行 DML,其中包括删除。
我可以在所有增量文件都存在的 gs 存储桶顶部创建一个 BQ 外部表。然而,它甚至会拉取删除记录,因为 BQ 外部表无法读取 delta 的事务日志,其中它说明要考虑哪些 parquet 文件以及要删除哪些文件。
除了以编程方式将数据从 delta 复制到 BQ 之外,有没有一种方法可以将 BQ 中的 delta 表(gs 位置)的最新快照公开为外部表?
我有一个笔记本,它将处理该文件并以结构化格式创建数据框。现在我需要导入在另一个笔记本中创建的数据框,但问题是在运行笔记本之前我需要验证仅适用于我需要运行的某些场景。
通常要导入所有数据结构,我们使用%run。但就我而言,它应该是 if 子句和 then notebook run 的组合
if "dataset" in path": %run ntbk_path
它给出错误“路径不存在”
if "dataset" in path": dbutils.notebook.run(ntbk_path)
这个我无法获得所有的数据结构。
有人可以帮我解决这个错误吗?
我正在尝试从 Spark 中名为 logtimestamp (类型为 TimeStampType)的列创建年份和月份列。数据源是cassandra。我正在使用 Sparkshell 来执行这些步骤,这是我编写的代码 -
import org.apache.spark.sql.cassandra._
import org.apache.spark.sql.types._
var logsDF = spark.read.cassandraFormat("tableName", "cw").load()
var newlogs = logsDF.withColumn("year", year(col("logtimestamp")))
.withColumn("month", month(col("logtimestamp")))
newlogs.write.cassandraFormat("tableName_v2", "cw")
.mode("Append").save()
Run Code Online (Sandbox Code Playgroud)
但这些步骤没有成功,我最终出现以下错误
java.lang.ArithmeticException: long overflow
at java.lang.Math.multiplyExact(Math.java:892)
at org.apache.spark.sql.catalyst.util.DateTimeUtils$.millisToMicros(DateTimeUtils.scala:205)
at org.apache.spark.sql.catalyst.util.DateTimeUtils$.fromJavaTimestamp(DateTimeUtils.scala:166)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$TimestampConverter$.toCatalystImpl(CatalystTypeConverters.scala:327)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$TimestampConverter$.toCatalystImpl(CatalystTypeConverters.scala:325)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$CatalystTypeConverter.toCatalyst(CatalystTypeConverters.scala:107)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$StructConverter.toCatalystImpl(CatalystTypeConverters.scala:252)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$StructConverter.toCatalystImpl(CatalystTypeConverters.scala:242)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$CatalystTypeConverter.toCatalyst(CatalystTypeConverters.scala:107)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$.$anonfun$createToCatalystConverter$2(CatalystTypeConverters.scala:426)
at com.datastax.spark.connector.datasource.UnsafeRowReader.read(UnsafeRowReaderFactory.scala:34)
at com.datastax.spark.connector.datasource.UnsafeRowReader.read(UnsafeRowReaderFactory.scala:21)
at com.datastax.spark.connector.datasource.CassandraPartitionReaderBase.$anonfun$getIterator$2(CassandraScanPartitionReaderFactory.scala:110)
at scala.collection.Iterator$$anon$10.next(Iterator.scala:459)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:494)
at com.datastax.spark.connector.datasource.CassandraPartitionReaderBase.next(CassandraScanPartitionReaderFactory.scala:66)
at org.apache.spark.sql.execution.datasources.v2.PartitionIterator.hasNext(DataSourceRDD.scala:79)
at org.apache.spark.sql.execution.datasources.v2.MetricsIterator.hasNext(DataSourceRDD.scala:112)
at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37)
at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:458)
at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage1.processNext(Unknown Source)
at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
at org.apache.spark.sql.execution.WholeStageCodegenExec$$anon$1.hasNext(WholeStageCodegenExec.scala:755)
at …Run Code Online (Sandbox Code Playgroud) 有没有办法访问 Repo 内笔记本内的数据,例如 Repo url 和分支名称?也许是 dbutils 中的东西。
假设我有一个流数据帧,并且我正在将其写入 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
databricks ×5
delta-lake ×3
apache-spark ×2
cassandra ×2
pyspark ×2
gremlin ×1
mlflow ×1
mlops ×1
orientdb ×1
python ×1
python-3.x ×1
scala ×1