我有一个功能可以让我从客户端应用程序查询数据块增量表。这是我用于此目的的代码:
df = spark.sql('SELECT * FROM EmployeeTerritories LIMIT 100')
dataframe = df.toPandas()
dataframe_json = dataframe.to_json(orient='records', force_ascii=False)
Run Code Online (Sandbox Code Playgroud)
但是,第二行抛出了错误
从时间戳[us, tz=Etc/UTC] 转换为时间戳[ns] 将导致时间戳超出范围
我知道这个错误是什么意思,我的日期类型字段超出范围,我尝试寻找解决方案,但它们都不适合我的场景。
我找到的解决方案是关于特定的数据框列,但就我而言,我遇到了一个全局问题,因为我有大量的增量表,并且我不知道特定的日期类型列,所以我可以进行类型操作以避免这种情况。
是否可以找到所有Timestamp类型列并将它们转换为string?这看起来是一个很好的解决方案吗?对于如何实现我想要做的事情,您还有其他想法吗?
我正在使用 Python 通过databricks-connect. 在墙后面,这使用了 Spark,它确实是基于 java 的,所以为了使用它,我需要 java。JDK已下载(版本14),设置为JAVA_HOME env,但是当我运行代码时,出现以下错误:
引起原因:java.lang.reflect.InaccessibleObjectException:无法使私有java.nio.DirectByteBuffer(long,int)可访问:模块java.base不会“打开java.nio”到未命名模块@bccb269
这是崩溃的代码
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索但找不到这个错误,我认为这不是我第一次遇到。任何想法这个错误意味着什么以及如何修复它?
我的 api 中有一些缓慢的调用,因此为了不阻塞我的 UI,我按照本教程实现了一个后台工作服务。在我里面_backgroundWorkerQueue我有
_backgroundWorkerQueue.QueueBackgroundWorkItem(async token =>
{
await client.ExecuteAsync(request, CancellationToken.None);
await _projectRepository.Update(id, "Update", "unlock");
});
Run Code Online (Sandbox Code Playgroud)
第二行,await _projectRepository.Update向我抛出一个错误,表明上下文已被处理并且更新失败。我将服务设置为瞬态,并将上下文设置为瞬态,以便以这种方式进行测试,但我仍然遇到相同的错误。如果可能的话,在不使用 Hangfire 等其他库的情况下,如何避免和解决这个问题的任何想法和想法。