DATA 607 Week 7 Assignment

Silma Khan

SPRING 2025

library(jsonlite)
library(XML)
library(arrow)
## Warning: package 'arrow' was built under R version 4.4.3
## 
## Attaching package: 'arrow'
## The following object is masked from 'package:utils':
## 
##     timestamp
json_url <- "https://raw.githubusercontent.com/silmaxk/DATA607_CUNYSPS/refs/heads/main/Week7/data607_week7.json"
df_json <- fromJSON(json_url)
cat("JSON Data Imported:\n")
## JSON Data Imported:
print(df_json)
##            Category         Item_Name Item_ID      Brand   Price Variation_ID
## 1       Electronics        Smartphone     101  TechBrand  699.99        101-A
## 2       Electronics        Smartphone     101  TechBrand  699.99        101-B
## 3       Electronics            Laptop     102 CompuBrand 1099.99        102-A
## 4       Electronics            Laptop     102 CompuBrand 1099.99        102-B
## 5   Home Appliances      Refrigerator     201   HomeCool  899.99        201-A
## 6   Home Appliances      Refrigerator     201   HomeCool  899.99        201-B
## 7   Home Appliances   Washing Machine     202  CleanTech  499.99        202-A
## 8   Home Appliances   Washing Machine     202  CleanTech  499.99        202-B
## 9          Clothing           T-Shirt     301  FashionCo   19.99        301-A
## 10         Clothing           T-Shirt     301  FashionCo   19.99        301-B
## 11         Clothing           T-Shirt     301  FashionCo   19.99        301-C
## 12         Clothing             Jeans     302 DenimWorks   49.99        302-A
## 13         Clothing             Jeans     302 DenimWorks   49.99        302-B
## 14            Books     Fiction Novel     401          -   14.99        401-A
## 15            Books     Fiction Novel     401          -   14.99        401-B
## 16            Books Non-Fiction Guide     402          -   24.99        402-A
## 17            Books Non-Fiction Guide     402          -   24.99        402-B
## 18 Sports Equipment        Basketball     501 SportsGear   29.99        501-A
## 19 Sports Equipment     Tennis Racket     502  RacketPro   89.99        502-A
## 20 Sports Equipment     Tennis Racket     502  RacketPro   89.99        502-B
##                             Variation_Details
## 1                 Color: Black, Storage: 64GB
## 2                Color: White, Storage: 128GB
## 3               Color: Silver, Storage: 256GB
## 4           Color: Space Gray, Storage: 512GB
## 5  Color: Stainless Steel, Capacity: 20 cu ft
## 6            Color: White, Capacity: 18 cu ft
## 7       Type: Front Load, Capacity: 4.5 cu ft
## 8         Type: Top Load, Capacity: 5.0 cu ft
## 9                        Color: Blue, Size: S
## 10                        Color: Red, Size: M
## 11                      Color: Green, Size: L
## 12                 Color: Dark Blue, Size: 32
## 13                Color: Light Blue, Size: 34
## 14       Format: Hardcover, Language: English
## 15       Format: Paperback, Language: Spanish
## 16           Format: eBook, Language: English
## 17        Format: Paperback, Language: French
## 18                Size: Size 7, Color: Orange
## 19           Material: Graphite, Color: Black
## 20          Material: Aluminum, Color: Silver
html_url <- "https://raw.githubusercontent.com/silmaxk/DATA607_CUNYSPS/refs/heads/main/Week7/data607_week7.html"

html_content <- readLines(html_url)

df_html <- readHTMLTable(html_content, which = 1, stringsAsFactors = FALSE)
cat("\nHTML Data Imported:\n")
## 
## HTML Data Imported:
print(df_html)
##            Category         Item_Name Item_ID      Brand   Price Variation_ID
## 1       Electronics        Smartphone     101  TechBrand  699.99        101-A
## 2       Electronics        Smartphone     101  TechBrand  699.99        101-B
## 3       Electronics            Laptop     102 CompuBrand 1099.99        102-A
## 4       Electronics            Laptop     102 CompuBrand 1099.99        102-B
## 5   Home Appliances      Refrigerator     201   HomeCool  899.99        201-A
## 6   Home Appliances      Refrigerator     201   HomeCool  899.99        201-B
## 7   Home Appliances   Washing Machine     202  CleanTech  499.99        202-A
## 8   Home Appliances   Washing Machine     202  CleanTech  499.99        202-B
## 9          Clothing           T-Shirt     301  FashionCo   19.99        301-A
## 10         Clothing           T-Shirt     301  FashionCo   19.99        301-B
## 11         Clothing           T-Shirt     301  FashionCo   19.99        301-C
## 12         Clothing             Jeans     302 DenimWorks   49.99        302-A
## 13         Clothing             Jeans     302 DenimWorks   49.99        302-B
## 14            Books     Fiction Novel     401          -   14.99        401-A
## 15            Books     Fiction Novel     401          -   14.99        401-B
## 16            Books Non-Fiction Guide     402          -   24.99        402-A
## 17            Books Non-Fiction Guide     402          -   24.99        402-B
## 18 Sports Equipment        Basketball     501 SportsGear   29.99        501-A
## 19 Sports Equipment     Tennis Racket     502  RacketPro   89.99        502-A
## 20 Sports Equipment     Tennis Racket     502  RacketPro   89.99        502-B
##                             Variation_Details
## 1                 Color: Black, Storage: 64GB
## 2                Color: White, Storage: 128GB
## 3               Color: Silver, Storage: 256GB
## 4           Color: Space Gray, Storage: 512GB
## 5  Color: Stainless Steel, Capacity: 20 cu ft
## 6            Color: White, Capacity: 18 cu ft
## 7       Type: Front Load, Capacity: 4.5 cu ft
## 8         Type: Top Load, Capacity: 5.0 cu ft
## 9                        Color: Blue, Size: S
## 10                        Color: Red, Size: M
## 11                      Color: Green, Size: L
## 12                 Color: Dark Blue, Size: 32
## 13                Color: Light Blue, Size: 34
## 14       Format: Hardcover, Language: English
## 15       Format: Paperback, Language: Spanish
## 16           Format: eBook, Language: English
## 17        Format: Paperback, Language: French
## 18                Size: Size 7, Color: Orange
## 19           Material: Graphite, Color: Black
## 20          Material: Aluminum, Color: Silver
xml_url <- "https://raw.githubusercontent.com/silmaxk/DATA607_CUNYSPS/refs/heads/main/Week7/data607_week7.xml"

xml_content <- readLines(xml_url, warn = FALSE)
xml_text <- paste(xml_content, collapse = "\n")

if(nchar(xml_text) == 0) {
  stop("XML content is empty. Please check the URL or file content.")
}

xml_doc <- xmlParse(xml_text)

df_xml <- xmlToDataFrame(nodes = getNodeSet(xml_doc, "//Item"))
cat("\nXML Data Imported:\n")
## 
## XML Data Imported:
print(df_xml)
##            Category         Item_Name Item_ID      Brand   Price Variation_ID
## 1       Electronics        Smartphone     101  TechBrand  699.99        101-A
## 2       Electronics        Smartphone     101  TechBrand  699.99        101-B
## 3       Electronics            Laptop     102 CompuBrand 1099.99        102-A
## 4       Electronics            Laptop     102 CompuBrand 1099.99        102-B
## 5   Home Appliances      Refrigerator     201   HomeCool  899.99        201-A
## 6   Home Appliances      Refrigerator     201   HomeCool  899.99        201-B
## 7   Home Appliances   Washing Machine     202  CleanTech  499.99        202-A
## 8   Home Appliances   Washing Machine     202  CleanTech  499.99        202-B
## 9          Clothing           T-Shirt     301  FashionCo   19.99        301-A
## 10         Clothing           T-Shirt     301  FashionCo   19.99        301-B
## 11         Clothing           T-Shirt     301  FashionCo   19.99        301-C
## 12         Clothing             Jeans     302 DenimWorks   49.99        302-A
## 13         Clothing             Jeans     302 DenimWorks   49.99        302-B
## 14            Books     Fiction Novel     401          -   14.99        401-A
## 15            Books     Fiction Novel     401          -   14.99        401-B
## 16            Books Non-Fiction Guide     402          -   24.99        402-A
## 17            Books Non-Fiction Guide     402          -   24.99        402-B
## 18 Sports Equipment        Basketball     501 SportsGear   29.99        501-A
## 19 Sports Equipment     Tennis Racket     502  RacketPro   89.99        502-A
## 20 Sports Equipment     Tennis Racket     502  RacketPro   89.99        502-B
##                             Variation_Details
## 1                 Color: Black, Storage: 64GB
## 2                Color: White, Storage: 128GB
## 3               Color: Silver, Storage: 256GB
## 4           Color: Space Gray, Storage: 512GB
## 5  Color: Stainless Steel, Capacity: 20 cu ft
## 6            Color: White, Capacity: 18 cu ft
## 7       Type: Front Load, Capacity: 4.5 cu ft
## 8         Type: Top Load, Capacity: 5.0 cu ft
## 9                        Color: Blue, Size: S
## 10                        Color: Red, Size: M
## 11                      Color: Green, Size: L
## 12                 Color: Dark Blue, Size: 32
## 13                Color: Light Blue, Size: 34
## 14       Format: Hardcover, Language: English
## 15       Format: Paperback, Language: Spanish
## 16           Format: eBook, Language: English
## 17        Format: Paperback, Language: French
## 18                Size: Size 7, Color: Orange
## 19           Material: Graphite, Color: Black
## 20          Material: Aluminum, Color: Silver
csv_data <- "Category,Item_Name,Item_ID,Brand,Price,Variation_ID,Variation_Details
Electronics,Smartphone,101,TechBrand,699.99,101-A,\"Color: Black, Storage: 64GB\"
Electronics,Smartphone,101,TechBrand,699.99,101-B,\"Color: White, Storage: 128GB\"
Electronics,Laptop,102,CompuBrand,1099.99,102-A,\"Color: Silver, Storage: 256GB\"
Electronics,Laptop,102,CompuBrand,1099.99,102-B,\"Color: Space Gray, Storage: 512GB\"
Home Appliances,Refrigerator,201,HomeCool,899.99,201-A,\"Color: Stainless Steel, Capacity: 20 cu ft\"
Home Appliances,Refrigerator,201,HomeCool,899.99,201-B,\"Color: White, Capacity: 18 cu ft\"
Home Appliances,Washing Machine,202,CleanTech,499.99,202-A,\"Type: Front Load, Capacity: 4.5 cu ft\"
Home Appliances,Washing Machine,202,CleanTech,499.99,202-B,\"Type: Top Load, Capacity: 5.0 cu ft\"
Clothing,T-Shirt,301,FashionCo,19.99,301-A,\"Color: Blue, Size: S\"
Clothing,T-Shirt,301,FashionCo,19.99,301-B,\"Color: Red, Size: M\"
Clothing,T-Shirt,301,FashionCo,19.99,301-C,\"Color: Green, Size: L\"
Clothing,Jeans,302,DenimWorks,49.99,302-A,\"Color: Dark Blue, Size: 32\"
Clothing,Jeans,302,DenimWorks,49.99,302-B,\"Color: Light Blue, Size: 34\"
Books,Fiction Novel,401,-,14.99,401-A,\"Format: Hardcover, Language: English\"
Books,Fiction Novel,401,-,14.99,401-B,\"Format: Paperback, Language: Spanish\"
Books,Non-Fiction Guide,402,-,24.99,402-A,\"Format: eBook, Language: English\"
Books,Non-Fiction Guide,402,-,24.99,402-B,\"Format: Paperback, Language: French\"
Sports Equipment,Basketball,501,SportsGear,29.99,501-A,\"Size: Size 7, Color: Orange\"
Sports Equipment,Tennis Racket,502,RacketPro,89.99,502-A,\"Material: Graphite, Color: Black\"
Sports Equipment,Tennis Racket,502,RacketPro,89.99,502-B,\"Material: Aluminum, Color: Silver\""

df <- read.csv(text = csv_data, stringsAsFactors = FALSE)

write_parquet(df, "data.parquet")

JSON Format

Pros - It is very simple for humans to read and write without too many complex syntax - This format can be used between various different programming languages

Cons - Can be very lengthy and tedious for very large datasets - Does not really enforce the use of data types

XML Format

Pros - Very structured format and provides defined structure - Data uses metadata that allows it to be easier to understand

Cons - It requires more processing power when dealing with large data - Can be very complex for simple tasks

HTML Format

Pros - Very easy to showcase on web browsers - Very accessing and easy to share data

Cons - It is better for displaying data, but not for data processing - Contains tags that can hinder analysis