<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Running a K-means (.fit) gives error:Params must be either a param map or a list/tuple of param maps but got %s.&amp;quot; % type(params) in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/running-a-k-means-fit-gives-error-params-must-be-either-a-param/m-p/2768#M67</link>
    <description>&lt;P&gt;Hi @Marcela Bejarano​&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Great to meet you, and thanks for your question! &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let's see if your peers in the community have an answer to your question. Thanks.&lt;/P&gt;</description>
    <pubDate>Thu, 22 Jun 2023 05:08:32 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2023-06-22T05:08:32Z</dc:date>
    <item>
      <title>Running a K-means (.fit) gives error:Params must be either a param map or a list/tuple of param maps but got %s." % type(params)</title>
      <link>https://community.databricks.com/t5/data-engineering/running-a-k-means-fit-gives-error-params-must-be-either-a-param/m-p/2767#M66</link>
      <description>&lt;P&gt;&amp;nbsp;am running a k-means algorithm. My feature are DoubleType and have no nulls, but I get : raise TypeError("Params must be either a param map or a list/tuple of param maps but got %s." % type(params). Anyone have any idea how to solve this?&lt;/P&gt;&lt;P&gt;File /databricks/spark/python/pyspark/ml/base.py:205, in Estimator.fit(self, dataset, params)&lt;/P&gt;&lt;P&gt;    203         return self.copy(params)._fit(dataset)&lt;/P&gt;&lt;P&gt;    204     else:&lt;/P&gt;&lt;P&gt;--&amp;gt; 205         return self._fit(dataset)&lt;/P&gt;&lt;P&gt;    206 else:&lt;/P&gt;&lt;P&gt;    207     raise TypeError(&lt;/P&gt;&lt;P&gt;    208         "Params must be either a param map or a list/tuple of param maps, "&lt;/P&gt;&lt;P&gt;    209         "but got %s." % type(params)&lt;/P&gt;&lt;P&gt;    210     )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;File /databricks/spark/python/pyspark/ml/wrapper.py:381, in JavaEstimator._fit(self, dataset)&lt;/P&gt;&lt;P&gt;    380 def _fit(self, dataset: DataFrame) -&amp;gt; JM:&lt;/P&gt;&lt;P&gt;--&amp;gt; 381     java_model = self._fit_java(dataset)&lt;/P&gt;&lt;P&gt;    382     model = self._create_model(java_model)&lt;/P&gt;&lt;P&gt;    383     return self._copyValues(model)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;File /databricks/spark/python/pyspark/ml/wrapper.py:378, in JavaEstimator._fit_java(self, dataset)&lt;/P&gt;&lt;P&gt;    375 assert self._java_obj is not None&lt;/P&gt;&lt;P&gt;    377 self._transfer_params_to_java()&lt;/P&gt;&lt;P&gt;--&amp;gt; 378 return self._java_obj.fit(dataset._jdf)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;File /databricks/spark/python/lib/py4j-0.10.9.7-src.zip/py4j/java_gateway.py:1322, in JavaMember.__call__(self, *args)    1316 command = proto.CALL_COMMAND_NAME +\    1317     self.command_header +\    1318  args_command +\    1319     proto.END_COMMAND_PART    1321 answer = self.gateway_client.send_command(command)&lt;/P&gt;&lt;P&gt;-&amp;gt; 1322 return_value = get_return_value(    1323     answer, self.gateway_client, self.target_id, self.name)    1325 for temp_arg in temp_args:    1326     if hasattr(temp_arg, "_detach"):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;File /databricks/spark/python/pyspark/errors/exceptions/captured.py:162, in capture_sql_exception.&amp;lt;locals&amp;gt;.deco(*a, **kw)&lt;/P&gt;&lt;P&gt;    160 def deco(*a: Any, **kw: Any) -&amp;gt; Any:&lt;/P&gt;&lt;P&gt;    161     try:&lt;/P&gt;&lt;P&gt;--&amp;gt; 162         return f(*a, **kw)&lt;/P&gt;&lt;P&gt;    163     except Py4JJavaError as e:&lt;/P&gt;&lt;P&gt;    164         converted = convert_exception(e.java_exception)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;File /databricks/spark/python/lib/py4j-0.10.9.7-src.zip/py4j/protocol.py:326, in get_return_value(answer, gateway_client, target_id, name)&lt;/P&gt;&lt;P&gt;    324 value = OUTPUT_CONVERTER[type](answer[2:], gateway_client)&lt;/P&gt;&lt;P&gt;    325 if answer[1] == REFERENCE_TYPE:&lt;/P&gt;&lt;P&gt;--&amp;gt; 326     raise Py4JJavaError(&lt;/P&gt;&lt;P&gt;    327         "An error occurred while calling {0}{1}{2}.\n".&lt;/P&gt;&lt;P&gt;    328         format(target_id, ".", name), value)&lt;/P&gt;&lt;P&gt;    329 else:&lt;/P&gt;&lt;P&gt;    330     raise Py4JError(&lt;/P&gt;&lt;P&gt;    331         "An error occurred while calling {0}{1}{2}. Trace:\n{3}\n".&lt;/P&gt;&lt;P&gt;    332         format(target_id, ".", name, value))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Py4JJavaError: An error occurred while calling o13759.fit. : org.apache.spark.SparkException: Job aborted due to stage failure: Task 9 in stage 4052.0 failed 4 times, most recent failure: Lost task&lt;/P&gt;&lt;P&gt;9.3 in stage 4052.0 (TID 29072) (10.1.2.11 executor 0): java.lang.AssertionError: assertion &lt;/P&gt;&lt;P&gt;failed  at...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Jun 2023 13:13:57 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/running-a-k-means-fit-gives-error-params-must-be-either-a-param/m-p/2767#M66</guid>
      <dc:creator>mbejarano89</dc:creator>
      <dc:date>2023-06-21T13:13:57Z</dc:date>
    </item>
    <item>
      <title>Re: Running a K-means (.fit) gives error:Params must be either a param map or a list/tuple of param maps but got %s." % type(params)</title>
      <link>https://community.databricks.com/t5/data-engineering/running-a-k-means-fit-gives-error-params-must-be-either-a-param/m-p/2768#M67</link>
      <description>&lt;P&gt;Hi @Marcela Bejarano​&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Great to meet you, and thanks for your question! &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let's see if your peers in the community have an answer to your question. Thanks.&lt;/P&gt;</description>
      <pubDate>Thu, 22 Jun 2023 05:08:32 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/running-a-k-means-fit-gives-error-params-must-be-either-a-param/m-p/2768#M67</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2023-06-22T05:08:32Z</dc:date>
    </item>
    <item>
      <title>Re: Running a K-means (.fit) gives error:Params must be either a param map or a list/tuple of param maps but got %s." % type(params)</title>
      <link>https://community.databricks.com/t5/data-engineering/running-a-k-means-fit-gives-error-params-must-be-either-a-param/m-p/2769#M68</link>
      <description>&lt;P&gt;I found the answer just by trying several things, although I do not understand exactly what the problem was. All I had to do was to cache the input data before fitting the  model:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;assemble=VectorAssembler(inputCols=columns_input, outputCol='features')
assembled_data=assemble.transform(df)
assembled_data = assembled_data.cache()
KMeans_algo=KMeans(featuresCol='features', k=number_of_clusters)            
KMeans_fit=KMeans_algo.fit(assembled_data) &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Jun 2023 10:29:11 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/running-a-k-means-fit-gives-error-params-must-be-either-a-param/m-p/2769#M68</guid>
      <dc:creator>mbejarano89</dc:creator>
      <dc:date>2023-06-22T10:29:11Z</dc:date>
    </item>
  </channel>
</rss>

