Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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 摄取;";及;f";对卡桑德拉来说是布尔型的_Apache Spark_Cassandra_Boolean_Spark Cassandra Connector - Fatal编程技术网

Apache spark 摄取;";及;f";对卡桑德拉来说是布尔型的

Apache spark 摄取;";及;f";对卡桑德拉来说是布尔型的,apache-spark,cassandra,boolean,spark-cassandra-connector,Apache Spark,Cassandra,Boolean,Spark Cassandra Connector,我使用pyspark将csv加载为数据帧,然后将其保存到Cassandra。在Cassandra的模式中,其中一列被定义为布尔值,但我在csv中的实际数据是stringt或f。我能让卡桑德拉把t和f识别为布尔值吗?否则,我必须添加一个数据转换步骤。Spark Cassandra Connector将字符串转换为布尔值。但它只接受true和false,如果与其他字符串一起使用,则抛出异常。因此,您需要编写小型数据转换代码,如下所示: scala> val df = Seq((1, "

我使用pyspark将csv加载为数据帧,然后将其保存到Cassandra。在Cassandra的模式中,其中一列被定义为布尔值,但我在csv中的实际数据是string
t
f
。我能让卡桑德拉把
t
f
识别为布尔值吗?否则,我必须添加一个数据转换步骤。

Spark Cassandra Connector将字符串转换为布尔值。但它只接受
true
false
,如果与其他字符串一起使用,则抛出异常。因此,您需要编写小型数据转换代码,如下所示:

scala> val df = Seq((1, "t"), (2, "f"), (3, "t")).toDF("id", "b")
df: org.apache.spark.sql.DataFrame = [id: int, b: string]

scala> val df2 = df.withColumn("b", $"b" === "t")
df2: org.apache.spark.sql.DataFrame = [id: int, b: boolean]

scala> df2.show()
+---+-----+
| id|    b|
+---+-----+
|  1| true|
|  2|false|
|  3| true|
+---+-----+