dataiku / dataiku/dss-plugin-api-connect
Issue with bigint columns containing null in recipe's input dataset
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4
- Forks
- 4
- Avg merge
- 3d 21h
- Merged PRs (30d)
- 1
Description
So some testing.
- As a dataset tested about 1 million rows against a well known API system performance is comparable.
- When I tried to use this in the Recipe form I got a different error. May not be related to the changes you just made. The following anallysis was written up by Claude AI.
Title: Recipe fails on a SQL-backed input when an unused column is a nullable integer
Plugin: API Connect 1.4.3 (failing) and 1.4.2 (working) —
recipe.pyline is identical in both, so this is not version-related
DSS: 14.7.3 local (failing), Dataiku Cloud (working)
Data Store: PostgreSQL local (failing), SPARK Parquet cloud (working.)What happens
The recipe reads its full input with DSS schema types enforced:
input_parameters_dataframe = input_parameters_dataset.get_dataframe(infer_with_pandas=False)pandas int64 cannot hold NA, so any int-typed column with empty values raises before
the first HTTP request — including columns the recipe never reads.
process_dataframe()only touchesself.column_to_parameter_dict.Why it looks intermittent
The same project, same recipe config, same data shape, on two backends:
Input backend Type of the unused timestamp column Result S3 / Parquet via Spark string (inferred) Runs PostgreSQL bigint, nullable ValueError The recipe has one parameter column,
id(string). The column that breaks the read is
a nullable Unix timestamp that is not a parameter column.Traceback
File "<string>", line 56, in <module> File ".../dataiku/core/dataset.py", line 766, in get_dataframe results = pd.read_table(dku_output, ...) ... ValueError: Integer column has NA values in column 8Steps to reproduce
- Create a PostgreSQL-backed dataset with a nullable
bigintcolumn.- Add a string column to use as the API parameter, e.g.
id.- Build an API Connect recipe on it, selecting only
idas the parameter column.- Run.
Current work around I changed the type of the input column to string. With that type change in the input. I seem to be able to process data successfully.
Originally posted by @tom-aspireleaders in #84
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in recipe.py, then trace process_dataframe() and the input_parameters_dataset.get_dataframe(infer_with_pandas=False) call. Reproduce with a PostgreSQL-backed dataset containing an unused nullable bigint column and an id parameter; done means the recipe reads and processes the input without failing before the first HTTP request.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- pandas, postgresql, python
- Domain
- api, data, databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 64/100