Loading...

vastorbit.read_pandas

vastorbit.read_pandas(df: DataFrame, name: str | None = None, schema: str | None = None, catalog: str | None = None, dtype: dict | None = None, parse_nrows: int = 10000, temp_path: str | None = None, insert: bool = False, temporary_table: bool = False) VastFrame

Ingests a pandas.DataFrame into the VAST DataBase via Trino by creating a temporary CSV file and using the CSV parser to load the data.

Parameters:
  • df (pandas.DataFrame) – The pandas.DataFrame to ingest.

  • name (str, optional) – Name of the new relation or the relation in which to insert the data. If unspecified, a temporary local table is created. This temporary table is dropped at the end of the local session.

  • schema (str, optional) – Schema of the new relation. Supports formats: - ‘schema_name’ (uses default catalog from config) - ‘catalog.schema_name’ (catalog and schema) If empty, a temporary schema is used. To modify the temporary schema, use the set_option() function.

  • catalog (str, optional) – Target catalog (overrides catalog from schema parameter) Examples: ‘hive’, ‘postgresql’, ‘vast’, ‘memory’

  • dtype (dict, optional) – Dictionary of input types. Providing a dictionary can increase ingestion speed and precision. If specified, rather than parsing the intermediate CSV and guessing the input types, vastorbit uses the specified input types instead.

  • parse_nrows (int, optional) – If this parameter is greater than zero, vastorbit creates and ingests a temporary file containing parse_nrows number of rows to determine the input data types before ingesting the intermediate CSV file containing the rest of the data. This method of data type identification is less accurate, but is much faster for large datasets.

  • temp_path (str, optional) – The path to which to write the intermediate CSV file. This is useful in cases where the user does not have write permissions on the current directory.

  • insert (bool, optional) – If set to True, the data are ingested into the input relation. The column names of your table and the pandas.DataFrame must match.

  • temporary_table (bool, optional) – If True, create temporary table

Returns:

VastFrame of the new relation.

Return type:

VastFrame

Examples

In this example, we will first create a pandas.DataFrame using VastFrame.to_pandas() and ingest it into VAST DataBase.

We import vastorbit:

import vastorbit as vo

Hint

By assigning an alias to vastorbit, we mitigate the risk of code collisions with other libraries. This precaution is necessary because vastorbit uses commonly known function names like “average” and “median”, which can potentially lead to naming conflicts. The use of an alias ensures that the functions from vastorbit are used as intended without interfering with functions from other libraries.

We will use the Titanic dataset.

import vastorbit.datasets as vod

data = vod.load_titanic()
123
pclass
Integer
123
survived
Integer
Abc
name
Varchar(164)
Abc
sex
Varchar(20)
123
age
Double
123
sibsp
Integer
123
parch
Integer
Abc
ticket
Varchar(36)
123
fare
Double
Abc
cabin
Varchar(30)
Abc
embarked
Varchar(20)
Abc
boat
Varchar(100)
123
body
Integer
Abc
home.dest
Varchar(100)
131McCormack, Mr. Thomas Josephmale[null]003672287.75[null]Q[null][null][null]
231McCoy, Miss. Agnesfemale[null]2036722623.25[null]Q16[null][null]
331McCoy, Miss. Aliciafemale[null]2036722623.25[null]Q16[null][null]
431McCoy, Mr. Bernardmale[null]2036722623.25[null]Q16[null][null]
531McDermott, Miss. Brigdet Deliafemale[null]003309327.7875[null]Q13[null][null]
630McEvoy, Mr. Michaelmale[null]003656815.5[null]Q[null][null][null]
731McGovern, Miss. Maryfemale[null]003309317.8792[null]Q13[null][null]
831McGowan, Miss. Anna "Annie"female15.0003309238.0292[null]Q[null][null][null]
930McGowan, Miss. Katherinefemale35.00092327.75[null]Q[null][null][null]
1030McMahon, Mr. Martinmale[null]003703727.75[null]Q[null][null][null]
1130McNamee, Mr. Nealmale24.01037656616.1[null]S[null][null][null]
1230McNamee, Mrs. Neal (Eileen O'Leary)female19.01037656616.1[null]S[null]53[null]
1330McNeill, Miss. Bridgetfemale[null]003703687.75[null]Q[null][null][null]
1430Meanwell, Miss. (Marion Ogden)female[null]00SOTON/O.Q. 3920878.05[null]S[null][null][null]
1530Meek, Mrs. Thomas (Annie Louise Rowley)female[null]003430958.05[null]S[null][null][null]
1630Meo, Mr. Alfonzomale55.500A.5. 112068.05[null]S[null]201[null]
1730Mernagh, Mr. Robertmale[null]003687037.75[null]Q[null][null][null]
1831Midtsjo, Mr. Karl Albertmale21.0003455017.775[null]S15[null][null]
1930Miles, Mr. Frankmale[null]003593068.05[null]S[null][null][null]
2030Mineff, Mr. Ivanmale24.0003492337.8958[null]S[null][null][null]
2130Minkoff, Mr. Lazarmale21.0003492117.8958[null]S[null][null][null]
2230Mionoff, Mr. Stoytchomale28.0003492077.8958[null]S[null][null][null]
2330Mitkoff, Mr. Mitomale[null]003492217.8958[null]S[null][null][null]
2431Mockler, Miss. Helen Mary "Ellie"female[null]003309807.8792[null]Q16[null][null]
2530Moen, Mr. Sigurd Hansenmale25.0003481237.65F G73S[null]309[null]
2631Moor, Master. Meiermale6.00139209612.475E121S14[null][null]
2731Moor, Mrs. (Beila)female27.00139209612.475E121S14[null][null]
2830Moore, Mr. Leonard Charlesmale[null]00A4. 545108.05[null]S[null][null][null]
2931Moran, Miss. Berthafemale[null]1037111024.15[null]Q16[null][null]
3030Moran, Mr. Daniel Jmale[null]1037111024.15[null]Q[null][null][null]
3130Moran, Mr. Jamesmale[null]003308778.4583[null]Q[null][null][null]
3230Morley, Mr. Williammale34.0003645068.05[null]S[null][null][null]
3330Morrow, Mr. Thomas Rowanmale[null]003726227.75[null]Q[null][null][null]
3431Moss, Mr. Albert Johanmale[null]003129917.775[null]SB[null][null]
3531Moubarek, Master. Geriosmale[null]11266115.2458[null]CC[null][null]
3631Moubarek, Master. Halim Gonios ("William George")male[null]11266115.2458[null]CC[null][null]
3731Moubarek, Mrs. George (Omine "Amenia" Alexander)female[null]02266115.2458[null]CC[null][null]
3831Moussa, Mrs. (Mantoura Boulos)female[null]0026267.2292[null]C[null][null][null]
3930Moutal, Mr. Rahamin Haimmale[null]003747468.05[null]S[null][null][null]
4031Mullens, Miss. Katherine "Katie"female[null]00358527.7333[null]Q16[null][null]
4131Mulvihill, Miss. Bertha Efemale24.0003826537.75[null]Q15[null][null]
4230Murdlin, Mr. Josephmale[null]00A./5. 32358.05[null]S[null][null][null]
4331Murphy, Miss. Katherine "Kate"female[null]1036723015.5[null]Q16[null][null]
4431Murphy, Miss. Margaret Janefemale[null]1036723015.5[null]Q16[null][null]
4531Murphy, Miss. Norafemale[null]003656815.5[null]Q16[null][null]
4630Myhrman, Mr. Pehr Fabian Oliver Malkolmmale18.0003470787.75[null]S[null][null][null]
4730Naidenoff, Mr. Penkomale22.0003492067.8958[null]S[null][null][null]
4831Najib, Miss. Adele Kiamie "Jane"female15.00026677.225[null]CC[null][null]
4931Nakid, Miss. Maria ("Mary")female1.002265315.7417[null]CC[null][null]
5031Nakid, Mr. Sahidmale20.011265315.7417[null]CC[null][null]
5131Nakid, Mrs. Said (Waika "Mary" Mowad)female19.011265315.7417[null]CC[null][null]
5230Nancarrow, Mr. William Henrymale33.000A./5. 33388.05[null]S[null][null][null]
5330Nankoff, Mr. Minkomale[null]003492187.8958[null]S[null][null][null]
5430Nasr, Mr. Mustafamale[null]0026527.2292[null]C[null][null][null]
5530Naughton, Miss. Hannahfemale[null]003652377.75[null]Q[null][null][null]
5630Nenkoff, Mr. Christomale[null]003492347.8958[null]S[null][null][null]
5731Nicola-Yarred, Master. Eliasmale12.010265111.2417[null]CC[null][null]
5831Nicola-Yarred, Miss. Jamilafemale14.010265111.2417[null]CC[null][null]
5930Nieminen, Miss. Manta Josefinafemale29.00031012977.925[null]S[null][null][null]
6030Niklasson, Mr. Samuelmale28.0003636118.05[null]S[null][null][null]
6131Nilsson, Miss. Berta Oliviafemale18.0003470667.775[null]SD[null][null]
6231Nilsson, Miss. Helmina Josefinafemale26.0003474707.8542[null]S13[null][null]
6330Nilsson, Mr. August Ferdinandmale21.0003504107.8542[null]S[null][null][null]
6430Nirva, Mr. Iisakki Antino Aijomale41.000SOTON/O2 31012727.125[null]S[null][null]Finland Sudbury, ON
6531Niskanen, Mr. Juhamale39.000STON/O 2. 31012897.925[null]S9[null][null]
6630Nosworthy, Mr. Richard Catermale21.000A/4. 398867.8[null]S[null][null][null]
6730Novel, Mr. Mansouermale28.50026977.2292[null]C[null]181[null]
6831Nysten, Miss. Anna Sofiafemale22.0003470817.75[null]S13[null][null]
6930Nysveen, Mr. Johan Hansenmale61.0003453646.2375[null]S[null][null][null]
7030O'Brien, Mr. Thomasmale[null]1037036515.5[null]Q[null][null][null]
7130O'Brien, Mr. Timothymale[null]003309797.8292[null]Q[null][null][null]
7231O'Brien, Mrs. Thomas (Johanna "Hannah" Godfrey)female[null]1037036515.5[null]Q[null][null][null]
7330O'Connell, Mr. Patrick Dmale[null]003349127.7333[null]Q[null][null][null]
7430O'Connor, Mr. Mauricemale[null]003710607.75[null]Q[null][null][null]
7530O'Connor, Mr. Patrickmale[null]003667137.75[null]Q[null][null][null]
7630Odahl, Mr. Nils Martinmale23.00072679.225[null]S[null][null][null]
7730O'Donoghue, Ms. Bridgetfemale[null]003648567.75[null]Q[null][null][null]
7831O'Driscoll, Miss. Bridgetfemale[null]00143117.75[null]QD[null][null]
7931O'Dwyer, Miss. Ellen "Nellie"female[null]003309597.8792[null]Q[null][null][null]
8031Ohman, Miss. Velinfemale22.0003470857.775[null]SC[null][null]
8131O'Keefe, Mr. Patrickmale[null]003684027.75[null]QB[null][null]
8231O'Leary, Miss. Hanora "Norah"female[null]003309197.8292[null]Q13[null][null]
8331Olsen, Master. Artur Karlmale9.001C 173683.1708[null]S13[null][null]
8430Olsen, Mr. Henry Margidomale28.000C 400122.525[null]S[null]173[null]
8530Olsen, Mr. Karl Siegwart Andreasmale42.00145798.4042[null]S[null][null][null]
8630Olsen, Mr. Ole Martinmale[null]00Fa 2653027.3125[null]S[null][null][null]
8730Olsson, Miss. Elinafemale31.0003504077.8542[null]S[null][null][null]
8830Olsson, Mr. Nils Johan Goranssonmale28.0003474647.8542[null]S[null][null][null]
8931Olsson, Mr. Oscar Wilhelmmale32.0003470797.775[null]SA[null][null]
9030Olsvigen, Mr. Thor Andersonmale20.00065639.225[null]S[null]89Oslo, Norway Cameron, WI
9130Oreskovic, Miss. Jelkafemale23.0003150858.6625[null]S[null][null][null]
9230Oreskovic, Miss. Marijafemale20.0003150968.6625[null]S[null][null][null]
9330Oreskovic, Mr. Lukamale20.0003150948.6625[null]S[null][null][null]
9430Osen, Mr. Olaf Elonmale16.00075349.2167[null]S[null][null][null]
9531Osman, Mrs. Marafemale31.0003492448.6833[null]S[null][null][null]
9630O'Sullivan, Miss. Bridget Maryfemale[null]003309097.6292[null]Q[null][null][null]
9730Palsson, Master. Gosta Leonardmale2.03134990921.075[null]S[null]4[null]
9830Palsson, Master. Paul Folkemale6.03134990921.075[null]S[null][null][null]
9930Palsson, Miss. Stina Violafemale3.03134990921.075[null]S[null][null][null]
10030Palsson, Miss. Torborg Danirafemale8.03134990921.075[null]S[null][null][null]
Rows: 1-100 | Columns: 14

Note

vastorbit offers a wide range of sample datasets that are ideal for training and testing purposes. You can explore the full list of available datasets in the Datasets, which provides detailed information on each dataset and how to use them effectively. These datasets are invaluable resources for honing your data analysis and machine learning skills within the vastorbit environment.

Let’s convert the VastFrame to a pandas.DataFrame.

pandas_df = data.to_pandas()
display(pandas_df)
pclass survived name sex age sibsp parch ticket fare cabin embarked boat body home.dest
0 3 1 McCormack, Mr. Thomas Joseph male NaN 0 0 367228 7.7500 None Q None NaN None
1 3 1 McCoy, Miss. Agnes female NaN 2 0 367226 23.2500 None Q 16 NaN None
2 3 1 McCoy, Miss. Alicia female NaN 2 0 367226 23.2500 None Q 16 NaN None
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1306 3 1 Masselmani, Mrs. Fatima female NaN 0 0 2649 7.2250 None C C NaN None
1307 3 0 Matinoff, Mr. Nicola male NaN 0 0 349255 7.8958 None C None NaN None
1308 3 1 McCarthy, Miss. Catherine "Katie" female NaN 0 0 383123 7.7500 None Q 15 16 NaN None

Now, we will ingest the pandas.DataFrame into the VAST DataBase.

from vastorbit.core.parsers import read_pandas

read_pandas(
    df = pandas_df,
    name = "titanic_pandas",
    schema = "public",
)
pclass survived name sex age sibsp parch ticket fare cabin embarked boat body home.dest
0 3 1 McCormack, Mr. Thomas Joseph male NaN 0 0 367228 7.7500 None Q None NaN None
1 3 1 McCoy, Miss. Agnes female NaN 2 0 367226 23.2500 None Q 16 NaN None
2 3 1 McCoy, Miss. Alicia female NaN 2 0 367226 23.2500 None Q 16 NaN None
3 3 1 McCoy, Mr. Bernard male NaN 2 0 367226 23.2500 None Q 16 NaN None
4 3 1 McDermott, Miss. Brigdet Delia female NaN 0 0 330932 7.7875 None Q 13 NaN None
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1304 3 0 Markoff, Mr. Marin male 35.0 0 0 349213 7.8958 None C None NaN None
1305 3 0 Markun, Mr. Johann male 33.0 0 0 349257 7.8958 None S None NaN None
1306 3 1 Masselmani, Mrs. Fatima female NaN 0 0 2649 7.2250 None C C NaN None
1307 3 0 Matinoff, Mr. Nicola male NaN 0 0 349255 7.8958 None C None NaN None
1308 3 1 McCarthy, Miss. Catherine "Katie" female NaN 0 0 383123 7.7500 None Q 15 16 NaN None

1309 rows × 14 columns

Let’s specify data types using “dtype” parameter.

read_pandas(
    df = pandas_df,
    name = "titanic_pandas_dtypes",
    schema = "public",
    dtype = {
        "pclass": "INTEGER",
        "survived": "INTEGER",
        "name": "VARCHAR(164)",
        "sex": "VARCHAR(20)",
        "age": "DOUBLE",
        "sibsp": "INTEGER",
        "parch": "INTEGER",
        "ticket": "VARCHAR(36)",
        "fare": "DOUBLE",
        "cabin": "VARCHAR(30)",
        "embarked": "VARCHAR(20)",
        "boat": "VARCHAR(100)",
        "body": "INTEGER",
        "home.dest": "VARCHAR(100)",
    },
)
pclass survived name sex age sibsp parch ticket fare cabin embarked boat body home.dest
0 3 1 McCormack, Mr. Thomas Joseph male NaN 0 0 367228 7.7500 None Q None NaN None
1 3 1 McCoy, Miss. Agnes female NaN 2 0 367226 23.2500 None Q 16 NaN None
2 3 1 McCoy, Miss. Alicia female NaN 2 0 367226 23.2500 None Q 16 NaN None
3 3 1 McCoy, Mr. Bernard male NaN 2 0 367226 23.2500 None Q 16 NaN None
4 3 1 McDermott, Miss. Brigdet Delia female NaN 0 0 330932 7.7875 None Q 13 NaN None
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1304 3 0 Markoff, Mr. Marin male 35.0 0 0 349213 7.8958 None C None NaN None
1305 3 0 Markun, Mr. Johann male 33.0 0 0 349257 7.8958 None S None NaN None
1306 3 1 Masselmani, Mrs. Fatima female NaN 0 0 2649 7.2250 None C C NaN None
1307 3 0 Matinoff, Mr. Nicola male NaN 0 0 349255 7.8958 None C None NaN None
1308 3 1 McCarthy, Miss. Catherine "Katie" female NaN 0 0 383123 7.7500 None Q 15 16 NaN None

1309 rows × 14 columns

Important

A limited number of rows, determined by the parse_nrows parameter, is ingested. If your dataset is large and you want to ingest the entire dataset, increase its value.

Note

During the ingestion process, an intermediate CSV file is created. You can retrieve its location by using the temp_path parameter.

Note

If you want to ingest into an existing table, set the insert parameter to True.

See also

read_csv() : Ingests a CSV file into the VAST DataBase.
read_json() : Ingests a JSON file into the VAST DataBase.