[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16731349#comment-16731349 ] Samik R commented on SPARK-19217: - Any update on this? Still seems useful: I am trying to get couple of values from a VectorUDT type. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage (edit: at least as ORC) without > converting the vector columns to array columns, and there doesn't appear to > an easy way to make that conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16333987#comment-16333987 ] Takeshi Yamamuro commented on SPARK-19217: -- ok, I'll reconsider this. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage (edit: at least as ORC) without > converting the vector columns to array columns, and there doesn't appear to > an easy way to make that conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16333963#comment-16333963 ] Wenchen Fan commented on SPARK-19217: - Then we also need to define how to do cast, which needs a careful design. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage (edit: at least as ORC) without > converting the vector columns to array columns, and there doesn't appear to > an easy way to make that conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16333959#comment-16333959 ] Takeshi Yamamuro commented on SPARK-19217: -- If we can, I think it's the best to reuse `sqlType`, but IMO it's difficult to do so because `sqlType` just means an internal type of underlying data structure. If `sqlType` is the suitable type that most users want to cast UDT data to, it's totally ok. But, if not, we cannot tell which type we should cast the data to. `VectorUDT` is a good example; I think most users want to cast vectors to arrays, but `sqlType` is not an array type. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage (edit: at least as ORC) without > converting the vector columns to array columns, and there doesn't appear to > an easy way to make that conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16333936#comment-16333936 ] Wenchen Fan commented on SPARK-19217: - Before publishing UDT, I'm a little worried about adding more functionalities. For the cast, can we just recursively check if `UDT.sqlType` can be casted to some type? > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage (edit: at least as ORC) without > converting the vector columns to array columns, and there doesn't appear to > an easy way to make that conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=1698#comment-1698 ] Takeshi Yamamuro commented on SPARK-19217: -- If it still makes some sense and nobody takes this, I'll do. How about adding a new method for supported cast types in UserDefinedType ( [https://github.com/apache/spark/compare/master...maropu:CastUDF).] In this example we could cast from VectorUDT to Array and _vice versa_. {code:java} scala> val df1 = Seq((1, Vectors.dense(Array(1.0, 2.0, 3.0.toDF("a", "b") scala> val df2 = df1.selectExpr("CAST(b AS ARRAY)") scala> df2.printSchema root |-- b: array (nullable = true) ||-- element: double (containsNull = true) scala> df2.show +---+ | b| +---+ |[1.0, 2.0, 3.0]| +---+ scala> val df3 = Seq((1, Seq(1.0, 2.0, 3.0))).toDF("a", "b") scala> val df4 = df3.select(df3("b").cast(new VectorUDT())) scala> df4.printSchema root |-- b: vector (nullable = true) scala> df4.show +-+ |b| +-+ |[1.0,2.0,3.0]| +-+ {code} WDYT cc: [~cloud_fan] > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage (edit: at least as ORC) without > converting the vector columns to array columns, and there doesn't appear to > an easy way to make that conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15873159#comment-15873159 ] Liang-Chi Hsieh commented on SPARK-19217: - The native casting of UserDefinedType from/to other non UserDefinedType is lacking in current Spark SQL. It seems make sense to me because in some cases we may need to cast UserDefinedType to native data types which Spark SQL functions only support. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage (edit: at least as ORC) without > converting the vector columns to array columns, and there doesn't appear to > an easy way to make that conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15824917#comment-15824917 ] Takeshi Yamamuro commented on SPARK-19217: -- In spite loading/writing to data sources are currently okay, I think it's still worth trying this cuz it is some useful to apply vector types into the UDFs that only support array types as inputs. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage (edit: at least as ORC) without > converting the vector columns to array columns, and there doesn't appear to > an easy way to make that conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15824751#comment-15824751 ] Nicholas Chammas commented on SPARK-19217: -- Ah OK, good to know. I was testing with 2.0.2, which is why I didn't get that particular fix. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage (edit: at least as ORC) without > converting the vector columns to array columns, and there doesn't appear to > an easy way to make that conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15824677#comment-15824677 ] Hyukjin Kwon commented on SPARK-19217: -- (That's fixed in SPARK-17765 for ORC up to my knowledge.) > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage (edit: at least as ORC) without > converting the vector columns to array columns, and there doesn't appear to > an easy way to make that conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15824175#comment-15824175 ] Nicholas Chammas commented on SPARK-19217: -- [~mlnick] - I'm seeing this when I try to write as ORC. The error I get is: {code} java.lang.ClassCastException: org.apache.spark.ml.linalg.VectorUDT cannot be cast to org.apache.spark.sql.types.StructType {code} The vector column in question is a column of raw probabilities appended to the source DataFrame by {{LogisticRegressionModel.transform()}}. It looks like Parquet can indeed write this to storage without issue. But given the problems with ORC (and perhaps other formats?), plus the simple API problem of needing a UDF to make such a direct conversion, I think issue stands valid. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage without converting the vector columns > to array columns, and there doesn't appear to an easy way to make that > conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15823713#comment-15823713 ] Hyukjin Kwon commented on SPARK-19217: -- Yea, as I said above, it is possible to read/write but I guess the point here (assuming from the title and linked Stack Overflow question) is to allow conversion within expressions which is currently not allowed AKAIK. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage without converting the vector columns > to array columns, and there doesn't appear to an easy way to make that > conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15823701#comment-15823701 ] Nick Pentreath commented on SPARK-19217: I don't understand why bq. You can't save these DataFrames to storage without converting the vector columns to array columns Which storage exactly? Because using standard DF writers (such as parquet) works: {code} df = spark.createDataFrame([(1, Vectors.dense(1, 2)), (2, Vectors.dense(3, 4)), (3, Vectors.dense(5, 6))], ["id", "vector"]) df.write.parquet("/tmp/spark/vecs") df2 = spark.read.parquet("/tmp/spark/vecs/") {code} > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage without converting the vector columns > to array columns, and there doesn't appear to an easy way to make that > conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15823439#comment-15823439 ] Hyukjin Kwon commented on SPARK-19217: -- Up to my knowledge, the vectors in SQL become a udf, {{VectorUDT}}. AFAIK, we don't currently support explicit/implicit cast for udt in expressions. FWIW, data sources such as ORC, JSON and Parquet support to read/write this via using {{udt.sqlType}} IIRC. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage without converting the vector columns > to array columns, and there doesn't appear to an easy way to make that > conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15823105#comment-15823105 ] Sean Owen commented on SPARK-19217: --- Yes it's not hard to do this with a UDF, but it seems like everyone has to implement the same two one-liner UDFs for this purpose. It's not essential, but also seems reasonable to consider being able to cast to/from this common Spark type. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage without converting the vector columns > to array columns, and there doesn't appear to an easy way to make that > conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15823007#comment-15823007 ] Takeshi Yamamuro commented on SPARK-19217: -- Would it be better that `cast` support this conversion? IMO implementing the UDF to support this conversion is better because the implementation seems to be easy and the design be simple, I think. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage without converting the vector columns > to array columns, and there doesn't appear to an easy way to make that > conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-19217) Offer easy cast from vector to array
[ https://issues.apache.org/jira/browse/SPARK-19217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=1585#comment-1585 ] Sean Owen commented on SPARK-19217: --- It makes some sense to me, as I also find I write a UDF to do this just about every time. > Offer easy cast from vector to array > > > Key: SPARK-19217 > URL: https://issues.apache.org/jira/browse/SPARK-19217 > Project: Spark > Issue Type: Improvement > Components: ML, PySpark, SQL >Affects Versions: 2.1.0 >Reporter: Nicholas Chammas >Priority: Minor > > Working with ML often means working with DataFrames with vector columns. You > can't save these DataFrames to storage without converting the vector columns > to array columns, and there doesn't appear to an easy way to make that > conversion. > This is a common enough problem that it is [documented on Stack > Overflow|http://stackoverflow.com/q/35855382/877069]. The current solutions > to making the conversion from a vector column to an array column are: > # Convert the DataFrame to an RDD and back > # Use a UDF > Both approaches work fine, but it really seems like you should be able to do > something like this instead: > {code} > (le_data > .select( > col('features').cast('array').alias('features') > )) > {code} > We already have an {{ArrayType}} in {{pyspark.sql.types}}, but it appears > that {{cast()}} doesn't support this conversion. > Would this be an appropriate thing to add? -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org