class_docstr: Helper methods to load, save and pre-process data used in MLlib.
  
  .. versionadded:: 1.0.0
docstr: Loads labeled data in the LIBSVM format into an RDD of
  LabeledPoint. The LIBSVM format is a text-based format used by
  LIBSVM and LIBLINEAR. Each line represents a labeled sparse
  feature vector using the following format:
  
  label index1:value1 index2:value2 ...
  
  where the indices are one-based and in ascending order. This
  method parses each line into a LabeledPoint, where the feature
  indices are converted to zero-based.
  
  .. versionadded:: 1.0.0
  
  Parameters
  ----------
  sc : :py:class:`pyspark.SparkContext`
      Spark context
  path : str
      file or directory path in any Hadoop-supported file system URI
  numFeatures : int, optional
      number of features, which will be determined
      from the input data if a nonpositive value
      is given. This is useful when the dataset is
      already split into multiple files and you
      want to load them separately, because some
      features may not present in certain files,
      which leads to inconsistent feature
      dimensions.
  minPartitions : int, optional
      min number of partitions
  
  Returns
  -------
  :py:class:`pyspark.RDD`
      labeled data stored as an RDD of LabeledPoint
  
  Examples
  --------
  >>> from tempfile import NamedTemporaryFile
  >>> from pyspark.mllib.util import MLUtils
  >>> from pyspark.mllib.regression import LabeledPoint
  >>> tempFile = NamedTemporaryFile(delete=True)
  >>> _ = tempFile.write(b"+1 1:1.0 3:2.0 5:3.0\n-1\n-1 2:4.0 4:5.0 6:6.0")
  >>> tempFile.flush()
  >>> examples = MLUtils.loadLibSVMFile(sc, tempFile.name).collect()
  >>> tempFile.close()
  >>> examples[0]
  LabeledPoint(1.0, (6,[0,2,4],[1.0,2.0,3.0]))
  >>> examples[1]
  LabeledPoint(-1.0, (6,[],[]))
  >>> examples[2]
  LabeledPoint(-1.0, (6,[1,3,5],[4.0,5.0,6.0]))
docstr_tok: ["Loads","labeled","data","in","the","LIBSVM","format","into","an","RDD","of","LabeledPoint",".","The","LIBSVM","format","is","a","text-based","format","used","by","LIBSVM","and","LIBLINEAR",".","Each","line","represents","a","labeled","sparse","feature","vector","using","the","following","format",":","label","index1",":","value1","index2",":","value2","...","where","the","indices","are","one-based","and","in","ascending","order",".","This","method","parses","each","line","into","a","LabeledPoint",",","where","the","feature","indices","are","converted","to","zero-based",".","..","versionadded",":",":","1.0.0","Parameters","--","--","--","--","--","sc",":",":","py",":","class",":","`","pyspark.SparkContext","`","Spark","context","path",":","str","file","or","directory","path","in","any","Hadoop-supported","file","system","URI","numFeatures",":","int",",","optional","number","of","features",",","which","will","be","determined","from","the","input","data","if","a","nonpositive","value","is","given",".","This","is","useful","when","the","dataset","is","already","split","into","multiple","files","and","you","want","to","load","them","separately",",","because","some","features","may","not","present","in","certain","files",",","which","leads","to","inconsistent","feature","dimensions",".","minPartitions",":","int",",","optional","min","number","of","partitions","Returns","--","--","--","-",":","py",":","class",":","`","pyspark.RDD","`","labeled","data","stored","as","an","RDD","of","LabeledPoint","Examples","--","--","--","--",">",">",">","from","tempfile","import","NamedTemporaryFile",">",">",">","from","pyspark.mllib.util","import","MLUtils",">",">",">","from","pyspark.mllib.regression","import","LabeledPoint",">",">",">","tempFile","=","NamedTemporaryFile","(","delete=True",")",">",">",">","_","=","tempFile.write","(","b","''","+1","1:1.0","3:2.0","5:3.0\\n-1\\n-1","2:4.0","4:5.0","6:6.0","''",")",">",">",">","tempFile.flush","(",")",">",">",">","examples","=","MLUtils.loadLibSVMFile","(","sc",",","tempFile.name",")",".collect","(",")",">",">",">","tempFile.close","(",")",">",">",">","examples","[","0","]","LabeledPoint","(","1.0",",","(","6",",","[","0,2,4","]",",","[","1.0,2.0,3.0","]",")",")",">",">",">","examples","[","1","]","LabeledPoint","(","-1.0",",","(","6",",","[","]",",","[","]",")",")",">",">",">","examples","[","2","]","LabeledPoint","(","-1.0",",","(","6",",","[","1,3,5","]",",","[","4.0,5.0,6.0","]",")",")"]
code: def loadLibSVMFile(
      sc: SparkContext,
      path: str,
      numFeatures: int = -1,
      minPartitions: Optional[int] = None,
  ) -> RDD["LabeledPoint"]:
      """
      Loads labeled data in the LIBSVM format into an RDD of
      LabeledPoint. The LIBSVM format is a text-based format used by
      LIBSVM and LIBLINEAR. Each line represents a labeled sparse
      feature vector using the following format:
  
      label index1:value1 index2:value2 ...
  
      where the indices are one-based and in ascending order. This
      method parses each line into a LabeledPoint, where the feature
      indices are converted to zero-based.
  
      .. versionadded:: 1.0.0
  
      Parameters
      ----------
      sc : :py:class:`pyspark.SparkContext`
          Spark context
      path : str
          file or directory path in any Hadoop-supported file system URI
      numFeatures : int, optional
          number of features, which will be determined
          from the input data if a nonpositive value
          is given. This is useful when the dataset is
          already split into multiple files and you
          want to load them separately, because some
          features may not present in certain files,
          which leads to inconsistent feature
          dimensions.
      minPartitions : int, optional
          min number of partitions
  
      Returns
      -------
      :py:class:`pyspark.RDD`
          labeled data stored as an RDD of LabeledPoint
  
      Examples
      --------
      >>> from tempfile import NamedTemporaryFile
      >>> from pyspark.mllib.util import MLUtils
      >>> from pyspark.mllib.regression import LabeledPoint
      >>> tempFile = NamedTemporaryFile(delete=True)
      >>> _ = tempFile.write(b"+1 1:1.0 3:2.0 5:3.0\\n-1\\n-1 2:4.0 4:5.0 6:6.0")
      >>> tempFile.flush()
      >>> examples = MLUtils.loadLibSVMFile(sc, tempFile.name).collect()
      >>> tempFile.close()
      >>> examples[0]
      LabeledPoint(1.0, (6,[0,2,4],[1.0,2.0,3.0]))
      >>> examples[1]
      LabeledPoint(-1.0, (6,[],[]))
      >>> examples[2]
      LabeledPoint(-1.0, (6,[1,3,5],[4.0,5.0,6.0]))
      """
      from pyspark.mllib.regression import LabeledPoint
  
      lines = sc.textFile(path, minPartitions)
      parsed = lines.map(lambda l: MLUtils._parse_libsvm_line(l))
      if numFeatures <= 0:
          parsed.cache()
          numFeatures = (
              parsed.map(
                  lambda x: -1 if x[1].size == 0 else x[1][-1]
              ).reduce(max)
              + 1
          )
      return parsed.map(
          lambda x: LabeledPoint(
              x[0], Vectors.sparse(numFeatures, x[1], x[2])  # type: ignore[arg-type]
          )
      )
  
imports: import sys
  from functools import reduce
  import numpy
  from pyspark import SparkContext, since
  from pyspark.mllib.common import callMLlibFunc, inherit_doc
  from pyspark.mllib.linalg import Vectors, SparseVector, _convert_to_vector
  from pyspark.sql import DataFrame
  from typing import Generic, Iterable, List, Optional, Tuple, Type, TypeVar, cast, TYPE_CHECKING
  from pyspark.context import SparkContext
  from pyspark.mllib.linalg import Vector
  from pyspark.rdd import RDD
  from pyspark.sql.dataframe import DataFrame
label_desc: Use image node_id 3 for calling the MLUtils obj's underlying member method code with example usage: obj.loadLibSVMFile(sc, path, numFeatures, minPartitions) and returns: parsed