Coming soon: We’re working on a brand new, revamped Community experience. Want to receive updates? Sign up now!

0 votes

Hello,

 

I'm trying to remove duplicates in a dataset using a Python recipe in the form of "unique_records_for_cols = XXX_df.drop_duplicates(cols=['AAA', 'BBB'])"

 

My recipe seems correct (I'm successfully using a similar one on another dataset), yet the build keeps failing after a couple minutes, with the following log : 

java.io.IOException: Process return code is 137
	at com.dataiku.dip.dataflow.exec.AbstractCodeBasedRecipeRunner.execute(AbstractCodeBasedRecipeRunner.java:213)
	at com.dataiku.dip.dataflow.exec.AbstractCodeBasedRecipeRunner.execute(AbstractCodeBasedRecipeRunner.java:196)
	at com.dataiku.dip.dataflow.exec.AbstractPythonRecipeRunner.executeScript(AbstractPythonRecipeRunner.java:29)
	at com.dataiku.dip.recipes.code.PythonRecipeRunner.run(PythonRecipeRunner.java:73)
	at com.dataiku.dip.dataflow.jobrunner.ActivityRunner$FlowRunnableThread.run(ActivityRunner.java:303)

 

I've run out of ideas as to where that might come from. Any suggestion ?

 

Thanks in advance,

 

Julien

by

1 Answer

0 votes
Hi dear user with the same initials as me ;-)

Error 137 means that the Python process has been killed. This is probably because it was consuming too much memory, see here: http://stackoverflow.com/questions/19189522/what-does-killed-mean

To drop duplicates on a large dataset, you could add memory on the server, use clever Python code to load only part of the dataset in memory (like only some of the columns), or switching to another processing engine, like SQL, or maybe Hadoop if the dataset gets very large.
by
edited by
Thanks a lot for the extremely quick answer Jean-Baptiste, I'll try to find a workaround.

Have a nice day.

Julien
1,339 questions
1,365 answers
1,558 comments
11,916 users

©Dataiku 2012-2018 - Privacy Policy