Class SparkDB
java.lang.Object
SparkDB
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass
class
A bidirectional list between index value and String value -
Field Summary
FieldsModifier and TypeFieldDescriptioncolumn namesMaps column name with a list of corrisponding valuesint
Number of columnsint
Number of entries (excluding the column name row) -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds multiple rows.void
Adds a row.void
Create a database in memoryvoid
delete
(int index) Delete a row based on its index valuevoid
Seedelete(HashMap, int)
.void
Delete certain rows that apply certain rules.get
(int index) Seeget(ArrayList)
Gets multiple rows based on its index valueGets column values from of a certain column name for rows that apply certain rules.Gets a whole column as a HMList.SeegetIDs(HashMap, int)
.Get indices of the rows that apply certain rules.
HashMap argument [pass=123] will return all rows that have '123' in 'pass' columnvoid
Modifies a certain row based on its index valuevoid
void
Modifies column values for a specific column name(s) for rows that apply certain rules.void
readFromFile
(String filename) Reads CSV data from disk, then processes it.void
readFromFile
(String filename, String Crypt_Key) Reads encrypted CSV data from disk, decrypts it, then processes it.void
readFromString
(String data) Processes CSV content into data structureint
size()
Get the number of queries (size) of the databasetoString()
Override for toString().
-
Field Details
-
Mapper
Maps column name with a list of corrisponding values -
Headers
column names -
num_queries
public int num_queriesNumber of entries (excluding the column name row) -
num_header
public int num_headerNumber of columns
-
-
Constructor Details
-
SparkDB
public SparkDB()
-
-
Method Details
-
create
Create a database in memory- Parameters:
headers
- every element is the header name- Throws:
Exception
-
readFromFile
Reads encrypted CSV data from disk, decrypts it, then processes it.- Parameters:
filename
- The filename of the CSV file. ./data.csv to point at data.csv in the current directory.Crypt_Key
- The decryption key- Throws:
Exception
-
readFromFile
Reads CSV data from disk, then processes it.- Parameters:
filename
- The filename of the CSV file. ./data.csv to point at data.csv in the current directory.- Throws:
Exception
- See Also:
-
readFromString
Processes CSV content into data structure- Parameters:
data
- The input lines. First line should be the header. New line delimiters are '\n' and '\r'.
Headers example: "username","password"
Query Example: "morad","123"
Input String Argument Example:"username","password"\n"morad","123"
- Throws:
Exception
-
getIDs
Get indices of the rows that apply certain rules.
HashMap argument [pass=123] will return all rows that have '123' in 'pass' column- Parameters:
in
- Rules in form of Key:Column name and Value:Column Valueiter
- How many indices should the function return- Returns:
- ArrayList with all IDs applying rules passed in HashMap argument
-
getIDs
SeegetIDs(HashMap, int)
. Grab maximum indices possible that apply certain rules.- Parameters:
in
- Rules in form of Key:Column name and Value:Column Value- Returns:
- ArrayList with all IDs applying rules passed in HashMap argument
-
get
Gets column values from of a certain column name for rows that apply certain rules. SeegetIDs(HashMap, int)
.- Parameters:
input
- Rules in form of Key:Column name and Value:Column ValueColToFind
- Target column nameiter
- How many indices should the function return- Returns:
- Column values of certain rows that apply certain rows
-
get
Seeget(HashMap, String, int)
. Grab maximum indices possible.- Parameters:
input
- Rules in form of Key:Column name and Value:Column ValueColToFind
- Target column name- Returns:
- Column values of certain rows that apply certain rows
-
get
Seeget(ArrayList)
- Parameters:
index
- Target index- Returns:
- The whole row in form of Key:Column name and Value:Column value
-
get
Gets multiple rows based on its index value- Parameters:
indices
- Target Indices- Returns:
- The rows in form of Key:Column name and Value:Column value
-
getColumn
Gets a whole column as a HMList.- Parameters:
column
- Target Column name- Returns:
- HMList that has all the column values
-
delete
Delete certain rows that apply certain rules. SeegetIDs(HashMap, int)
- Parameters:
input
- Rules in form of Key:Column name and Value:Column Valueiter
- How many rows that apply certain rules should be removed
-
delete
Seedelete(HashMap, int)
. Delete all rows that apply certain rules- Parameters:
input
- Rules in form of Key:Column name and Value:Column Value
-
delete
public void delete(int index) Delete a row based on its index value- Parameters:
index
- Target Index Value
-
add
Adds a row. Seeadd(ArrayList)
- Parameters:
in
- Row in form of Key: Column name and Value: Column value
-
add
Adds multiple rows. Every element in variable 'in' is a row- Parameters:
in
- List of rows to be added. Seeadd(HashMap)
for more details on HashMap structure
-
modify
Modifies column values for a specific column name(s) for rows that apply certain rules. SeegetIDs(HashMap, int)
- Parameters:
in
- Rules in form of Key:Column name and Value:Column Valueedit
- Modification(s) to apply. In form of Key: Column name and Value: Column valueiter
- How many indices to modify
-
modify
Seemodify(HashMap, HashMap, int)
. Modifies all rows that apply certain rules- Parameters:
in
- Rules in form of Key:Column name and Value:Column Valueedit
- Modification(s) to apply. In form of Key: Column name and Value: Column value
-
modify
Modifies a certain row based on its index value- Parameters:
index
- Target index valueedit
- Modification(s) to apply. In form of Key: Column name and Value: Column value
-
size
public int size()Get the number of queries (size) of the database- Returns:
- The number of queries, excluding headers
-
toString
Override for toString(). returns the current data structure in CSV format
-