我有一个由1B行组成的1整数列的数据格式。因此,理想情况下,数据的大小应该是1B *4字节~= 4GB。当我缓存数据并检查大小时,证明了这是正确的。尺寸大约是4GB。
现在,如果我尝试广播相同的数据,以加入另一个数据帧,我会得到一个错误:Caused by: org.apache.spark.SparkException: Cannot broadcast the table that is larger than 8GB: 14 GB
为什么广播数据的大小会增加?我在其他情况下也看到过这种情况,300 3GB的dataframe在Spark选项卡中显示为3GB的广播数据。
任何推理或帮助都会
我来自Ruby on Rails环境,我真的被那里的活动记录宠坏了。我在iPhone上使用sqlite做了一个小的概念验证项目,我更加意识到我被宠坏了;)
对于下一个应用程序,我考虑使用核心数据(因为我相信它的工作方式将接近活动记录)。我的应用程序将为用户提供大量的数据(与许多相关的表),我打算定期更新这些数据(每2-3个月)。使用sqlite,这就像下载sqlite文件一样简单,使用核心数据也是如此简单吗?
加载页面时,我运行一些从SQLite DB加载项的代码。因此(我相信是这样)页面加载动画不是平滑的。因此,我决定在App.OnStart中预先加载数据。
Task.Run(itemsStore.LoadItemsAsync);
然后问题是它总是在主线程中运行。我试着在LoadItemsAsync里面做这样的把戏
while (MainThread.IsMainThread)
{
Debug.WriteLine($"ItemsStore.DoLoadItemsAsync: (2) Is main thread: {MainThrea