[
https://issues.apache.org/jira/browse/SPARK-16425?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15367005#comment-15367005
]
Neil Dewar commented on SPARK-16425:
------------------------------------
Thanks very much. I wasn't aware of the limitation on data types in
DataFrames. I think it would be a great outcome if withColumn() was not able
to create columns of invalid types. I can re-write my script to initiate the
column with 1 or 0 values.
If I remember rightly, I have seen withColumn do some other inappropriate
things in the past - like creating two columns with the same name. I will try
to find some time to research and log another bug with anything else I find.
Please let me know if I did anything wrong when I logged this request - it was
my first attempt.
> SparkR summary() fails on column of type logical
> ------------------------------------------------
>
> Key: SPARK-16425
> URL: https://issues.apache.org/jira/browse/SPARK-16425
> Project: Spark
> Issue Type: Bug
> Components: SparkR, SQL
> Affects Versions: 1.6.1
> Environment: Databricks.com
> Reporter: Neil Dewar
> Priority: Minor
>
> I created a DataFrame. I added a logical column to the DataFrame using:
> sdfAdults <- withColumn(sdfAdults, "IsGT50K", sdfAdults$gt50==" <=50K")
> The resulting column was reported using str() as being of type logical, with
> values TRUE and FALSE.
> I subsequently ran the command:
> summary(sdfAdults)
> The command failed reporting that the mean could not be calculated on a
> column of type logical.
> Error in invokeJava(isStatic = FALSE, objId$id, methodName, ...) :
> org.apache.spark.sql.AnalysisException: cannot resolve 'avg(IsGT50K)' due
> to data type mismatch: function average requires numeric types, not
> BooleanType;
> at
> org.apache.spark.sql.catalyst.analysis.package$AnalysisErrorAt.failAnalysis(package.scala:42)
> at
> org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1$$anonfun$apply$2.applyOrElse(CheckAnalysis.scala:65)
> at
> org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1$$anonfun$apply$2.applyOrElse(CheckAnalysis.scala:57)
> at
> org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformUp$1.apply(TreeNode.scala:335)
> at
> org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformUp$1.apply(TreeNode.scala:335)
> at
> org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:69)
> at
> org.apache.spark.sql.catalyst.trees.TreeNode.transformUp(TreeNode.scala:334)
> at
> org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$5.apply(TreeNode.scala:332)
> at
> org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$5.apply(TreeNode.scala:332)
> at
> org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$4.apply(TreeNode.scala:281)
> at scala.collection.Iterator$$anon$11.next(Iterator.scala:328)
> at scala.collection.Iterator$class.foreach(Iterator.scala:727)
> at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
> at
> scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48)
> at
> scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:103)
> at
> scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:47)
> at scala.collection.TraversableOnce$class.to(TraversableOnce.scala:273)
> at scala.collection.AbstractIterator.to(Iterator.scala:1157)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]