我正在从MySQL/MariaDB中提取数据,并且在创建数据集期间,数据类型会出错
线程"main"中的异常org.apache.spark.sql.AnalysisException:无法
AMOUNT从十进制(30,6)向十进制(38,18)进行强制转换,因为它可能会截断目标对象的类型路径为: - field(class) :"org.apache.spark.sql.types.Decimal",名称:"AMOUNT") - 根类:"com.misp.spark.Deal"您可以向输入数据添加显式强制转换或选择更高的精度目标对象中字段的类型;
案例类定义如下
case class
(
AMOUNT: Decimal
)
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何解决它而不是触摸数据库?
我正在研究 Spark 作为一种可能的计算工具,但无法找到我想到的用例的示例。我想要做的有点与 map 和 reduce(至少在第一步中)相反,这可能使 Spark 成为该工作的错误工具,所以在我忽略它之前,我想在这里检查是否有人有一些好主意可以做到。
数据流看起来像这样:
当然,计算应该在计算节点上完成,因此它可以并行工作,我只想移动数据一次 - 这意味着输入表的单个块将仅由单个节点处理。
这可行吗?如果不是,是否有替代方案可用于此目的并与 Spark 集成?
我正在尝试使用 gtk4 绑定来学习 rust,并决定尝试ListStore作为ListBox. 为了绑定模型,Widget需要返回的函数,但我需要一个Label. Label为什么继承Widget(实现IsA<Widget>)的 也不能满足Widget类型?
错误:
error[E0308]: mismatched types
--> src/main.rs:22:5
|
21 | fn create_widget<'r>(label: &'r Object) -> Widget {
| ------ expected `gtk4::Widget` because of return type
22 | Label::new(Some(label.property_value("name").get().unwrap()))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `gtk4::Widget`, found struct `gtk4::Label`
Run Code Online (Sandbox Code Playgroud)
完整代码:
use gtk::prelude::*;
use gtk::{Application, ApplicationWindow, Paned, Label, Orientation, ListBox, ListBoxRow, Widget};
use gtk::gio::ListStore;
use gtk::glib::Type;
use gtk::glib::Object;
fn main() {
println!("Hello, world!");// …Run Code Online (Sandbox Code Playgroud) 上下文:我正在尝试使用一个条件创建模态JDialog并使用自定义按钮复制JOptionPane功能 - 我不想使用UIManager来设置窗口样式.
问题:JDialog没有像它应该的那样回答ESCAPE和ENTER键.我已经尝试了所有我可以在网上找到的解决方案(多个听众解决方案,设置默认按钮等),我无法让它工作.
全班上传到pastebin,网址为http://pastebin.com/Kcj82h2i
扩展JDialog类中的实际键设置已完成
InputMap inputMap = getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
ActionMap actionMap = getRootPane().getActionMap();
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "returnyes");
actionMap.put("returnyes", new ResultYes());
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "returnno");
actionMap.put("returnno", new ResultNo());
Run Code Online (Sandbox Code Playgroud)
然后使用以下代码从JFrame调用该对话框:
if (results == 1)
{
InvoiceLinesTableModel tm = (InvoiceLinesTableModel) tbl_invoiceItems.getModel();
InvoiceLinesTableRow row = tm.getRow(tbl_invoiceItems.getSelectedRow());
tm.deleteRow(row);
tm.fireTableDataChanged();
StaticFunctions.updateTableRowHeights(tbl_invoiceItems);
}
Run Code Online (Sandbox Code Playgroud)
救命?