Skip to content
Snippets Groups Projects
  • hyukjinkwon's avatar
    99f3c827
    [SPARK-14615][ML][FOLLOWUP] Fix Python examples to use the new ML Vector and... · 99f3c827
    hyukjinkwon authored
    [SPARK-14615][ML][FOLLOWUP] Fix Python examples to use the new ML Vector and Matrix APIs in the ML pipeline based algorithms
    
    ## What changes were proposed in this pull request?
    
    This PR fixes Python examples to use the new ML Vector and Matrix APIs in the ML pipeline based algorithms.
    
    I firstly executed this shell command, `grep -r "from pyspark.mllib" .` and then executed them all.
    Some of tests in `ml` produced the error messages as below:
    
    ```
    pyspark.sql.utils.IllegalArgumentException: u'requirement failed: Input type must be VectorUDT but got org.apache.spark.mllib.linalg.VectorUDTf71b0bce.'
    ```
    
    So, I fixed them to use new ones just identically with some Python tests fixed in https://github.com/apache/spark/pull/12627
    
    ## How was this patch tested?
    
    Manually tested for all the examples listed by `grep -r "from pyspark.mllib" .`.
    
    Author: hyukjinkwon <gurwls223@gmail.com>
    
    Closes #13393 from HyukjinKwon/SPARK-14615.
    99f3c827
    History
    [SPARK-14615][ML][FOLLOWUP] Fix Python examples to use the new ML Vector and...
    hyukjinkwon authored
    [SPARK-14615][ML][FOLLOWUP] Fix Python examples to use the new ML Vector and Matrix APIs in the ML pipeline based algorithms
    
    ## What changes were proposed in this pull request?
    
    This PR fixes Python examples to use the new ML Vector and Matrix APIs in the ML pipeline based algorithms.
    
    I firstly executed this shell command, `grep -r "from pyspark.mllib" .` and then executed them all.
    Some of tests in `ml` produced the error messages as below:
    
    ```
    pyspark.sql.utils.IllegalArgumentException: u'requirement failed: Input type must be VectorUDT but got org.apache.spark.mllib.linalg.VectorUDTf71b0bce.'
    ```
    
    So, I fixed them to use new ones just identically with some Python tests fixed in https://github.com/apache/spark/pull/12627
    
    ## How was this patch tested?
    
    Manually tested for all the examples listed by `grep -r "from pyspark.mllib" .`.
    
    Author: hyukjinkwon <gurwls223@gmail.com>
    
    Closes #13393 from HyukjinKwon/SPARK-14615.
chisq_selector_example.py 1.58 KiB
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

from __future__ import print_function

from pyspark.sql import SparkSession
# $example on$
from pyspark.ml.feature import ChiSqSelector
from pyspark.ml.linalg import Vectors
# $example off$

if __name__ == "__main__":
    spark = SparkSession\
        .builder\
        .appName("ChiSqSelectorExample")\
        .getOrCreate()

    # $example on$
    df = spark.createDataFrame([
        (7, Vectors.dense([0.0, 0.0, 18.0, 1.0]), 1.0,),
        (8, Vectors.dense([0.0, 1.0, 12.0, 0.0]), 0.0,),
        (9, Vectors.dense([1.0, 0.0, 15.0, 0.1]), 0.0,)], ["id", "features", "clicked"])

    selector = ChiSqSelector(numTopFeatures=1, featuresCol="features",
                             outputCol="selectedFeatures", labelCol="clicked")

    result = selector.fit(df).transform(df)
    result.show()
    # $example off$

    spark.stop()