Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 使用Spark SQL的Cassandra Simple Insert语句因org.apache.Spark.SQL.catalyst.parser.ParseException失败_Apache Spark_Cassandra_Apache Spark Sql - Fatal编程技术网

Apache spark 使用Spark SQL的Cassandra Simple Insert语句因org.apache.Spark.SQL.catalyst.parser.ParseException失败

Apache spark 使用Spark SQL的Cassandra Simple Insert语句因org.apache.Spark.SQL.catalyst.parser.ParseException失败,apache-spark,cassandra,apache-spark-sql,Apache Spark,Cassandra,Apache Spark Sql,我尝试使用Spark SQL将数据插入Cassandra表,如下所示: String query = "CREATE TEMPORARY TABLE my_table USING org.apache.spark.sql.cassandra OPTIONS (table \"my_table\",keyspace \"my_keyspace\", pushdown \"true\")"; spark.sparkSession.sql(query);

我尝试使用Spark SQL将数据插入Cassandra表,如下所示:

String query = "CREATE TEMPORARY TABLE my_table USING org.apache.spark.sql.cassandra OPTIONS (table \"my_table\",keyspace \"my_keyspace\", pushdown \"true\")";
                spark.sparkSession.sql(query);
                spark.sparkSession
                                .sql("INSERT INTO my_keyspace.my_table (column0, column1) VALUES ('value0', 'value1');
但是,它会失败,但有以下例外: E

我在没有列名的情况下尝试了它,它成功了。
这里我的重点是为某些列插入数据,而不是全部列。

Spark SQL与CQL使用的语法不同,它们是不同的语言。有关更多信息,请查看HiveQL引用


一个警告是,通过SparkSql执行单行插入将非常缓慢。它是为大型多记录数百万次插入而设计的。

谢谢Russ。我使用了HiveQL格式,能够插入到表中。但是,我仍然有一个问题:如果一个表有4列,而我只需要在其中的3列中插入数据(包括键),我该怎么做?目前出现以下错误:无法插入表未知,因为列数不同:需要4列,但查询有3列您必须插入行结构我相信SparkSQL确实不适合进行这种单独的插入…除了注释之外,Cassandra CQL是我的一个很好的选择;其中需要插入\更新单个行。不过,您需要深入了解@Cassandra Batch我不确定您在说什么,批次可从cql获得。。。Spark SQL用于处理其他分布式系统(如hdfs、Cassandra或其他数据库)中的数据。是的。。我知道。我想说的是,对于单个插入,您可以直接使用Cassandra CQL驱动程序。但是,如果你使用CQL,有时需要插入大量的数据集,那么你可以考虑学习批处理。
xception in thread "main" org.apache.spark.sql.catalyst.parser.ParseException:
mismatched input 'column0' expecting {'(', 'SELECT', 'FROM', 'VALUES', 'TABLE', 'INSERT', 'MAP', 'REDUCE'}(line 1, pos 33)