使用Spark Shell将行插入Kudu时出错

时间:2017-04-18 12:48:58

标签: apache-spark insert apache-kudu

我是Apache Kudu的新手,我将它安装在我的Ubuntu系统上,后来使用Apache Spark shell在其中创建了一个表。现在我尝试使用insertRows()将数据插入到该表中,因为我使用的是下面给出的命令,

kuduContext.insertRows(customersDF, "spark_kudu_tbl")

其中customersDF是数据框,spark_kudu_tbl是Kudu数据库中的表。我收到了以下错误,

java.lang.NoSuchMethodError: org.apache.kudu.spark.kudu.KuduContext.insertRows(Lorg/apache/spark/sql/Dataset;Ljava/lang/String;)V

... 70 elided

我尝试了不同的选择,但没有人给我结果。任何人都可以为我的问题提供任何解决方案。

1 个答案:

答案 0 :(得分:0)

从错误消息中看起来好像你使用了错误的kudu-spark artifact,你应该使用kudu-spark2_2。请按照下面的说明开始你的火花壳(用你的kudu版本替换最后一位)

public function add_supplier($id = null)
    {
        $this->tbl_supplier('supplier_id');

        if ($id) {//condition check
            $result = $this->global_model->get_by(array('supplier_id' => $id), true);

            if ($result) {
                $data['supplier'] = $result;
            } else {
                //msg
                $type = 'error';
                $message = 'Sorry, No Record Found!';
                set_message($type, $message);
                redirect('admin/purchase/manage_supplier');
            }
        }

        // view page
        $data['title'] = 'Add New Supplier';
        //$data['editor'] = $this->data;
        $data['subview'] = $this->load->view('admin/purchase/add_supplier', $data, true);
        $this->load->view('admin/_layout_main', $data);
    }