PiSpark is an interface for Apache Spark in
Python is often used for large scale data processing and machine learning. Krish knack
teaches this course. So we are going to start Apache Spark series. And specifically, if
I talk about Spark, we will be focusing on how we can use spark with Python. So we are
going to discuss about the library called pi Spark, we will try to understand everything
why spark is actually required. And probably will also try to cover a lot of things, there
is something called as emblem, spark emblem, which will basically say that how you can
apply machine learning, you know, in Apache Spark itself with the help of this spark API
called as pi spark libraries. And apart from that, we'll also try to see in the future,
once we understand the basics of the PI spark library, how we can actually pre process our
data set how we can use the PI spark data frames, we'll also try to see how we can implement
or how we can use PI spark and cloud platforms like data, bricks, Amazon, AWS, you know,
so all these kinds of clouds, we'll try to cover. And remember, Apache Spark is quite
handy. Let me tell you just let me just give you some of the reasons so why Apache Spark
is pretty much good. Because understand, suppose if you have a huge amount of data, okay, suppose
if I say that I'm having 64, GB data, 128 gb data, you know, we may have some kind of
systems or standalone systems, you know, where we can have 32 GB of RAM, probably 64 gb of
ram right now in the workstation that I'm working in. It has 64 gb ram. So max to Max,
it can directly upload a data set of 32, GB, 48 gb, right. But what if we, if we have a
data set of 1.8 gb, you know, that is a time guys, we don't just depend on a local system,
we will try to pre process that particular data or perform any kind of operation in distributed
systems, right distributed system basically means that all there will be multiple systems,
you know, where we can actually run this pipeline of jobs or process or try to do any kind of
activities that we really want. And definitely Apache Spark will actually help us to do that.
And this has been pretty much amazing. And yes, people wanted this kind of videos a lot.
So how we are going to go through this specific playlist is that we'll try to, first of all
start with the installation will try to use PI Spark, because that is also Apache Spark
is it is a spark API with Python, when you're actually working with Python, we basically
use PI spark library. And yes, we can also use spark with other programming languages
like Java, Scala R. And all right, and we'll try to understand from basics you know, from
basics, how do we read a data set? How do we connect to a data source? Probably, how
do we play with the data frames, you know, in in this Apache Spark, that is your PI Spark,
also, they provide you data structures, like data frames, which is pretty much similar
to the panda's data frame. But yes, different kinds of operations are supported over there,
which we'll be looking at one by one as we go ahead. And then we will try to enter into
emlid, the spa, Apache Spark and lib. So basically, it is called a spark em lib, which will actually
help us to perform machine learning, which will be where we'll be able to perform some
machine learning algorithm task where we will be able to do regression, classification clustering.
And finally, we'll try to see how we can actually do the same operation in cloud, where I'll
try to show you some examples where we will be having a huge data set, we will try to
do the operation in the clusters of system, you know, in a distributed system, and we'll
try to see how we can use spark in that, right. So all those things will basically get covered.
Now, some of the advantages of Apache Spark and why it is very much famous, because it
runs workloads 100 multiplied by 100 times faster, you know, that basically means and
if you know about big data, guys, when we talk about big data, we're basically talking
about huge data set right. And then if you have heard of this terminology called as MapReduce,
right, Trashman Apache Spark is much more faster 100 times faster than MapReduce also.
Okay, and it is some of the more advantages that it is ease of use. You can write application
quickly in Java, Scala, Python, or R. As I said, we will be focusing on Python, where
we will be using a library called pi Spark. Then you can also combined sequel streaming
and complex analytics. When I talk about complex analytics. I'm basically talking about this
emblem, machine learning libraries. That will work definitely well with Apache Spark. And
Apache sparks can run on Hadoop, Apache missiles Cuba net standalone in our in the clouds,
cloud, different types of clouds guys, when I talk about AWS data, bricks, all these things,
we can definitely work okay. And it actually runs In a cluster mode cluster mode basically
means in a distributed mode, right. So these are some of the examples. Now if I if I go
with respect to which version of pi spark will spark we'll be using pi spark 3.1 point
one will be using will try to work. And if you just go and search for here you can see
SQL and data frames and all here you can see Spark streaming machine emilich, that is called
as machine learning. And all right, and apart from that, if I go and see the overview, here,
you can see that Apache Spark is a fast and general purpose cluster computing system and
provides high level API's in scalar, Java and Python, that makes parallel job easy to
write an optimized engine that supports genuine competition graphs, it is basically to work
with huge amount of data in short, you know, and that is pretty much handy, we'll try to
work. Now if I go and search for the spark in Python, you know, this page will get basically
you're open. And this thing's we'll try to discuss how to install it. And in this video,
we'll try to install the PI spark library. And if I talk about pi spark library, you'll
be able to see that pi spark library is pretty much amazing. This library is if you really
want to work spot, if you want to work this spark functionality with Python, you basically
use this specific library. And let's proceed, and let's try to see that how we can quickly
how we can quickly you know, install the specific libraries and check out like, what are the
things we can actually do? Okay, so all these things we'll try to see. So let's begin, please
make sure that you create a new environment when you're working with PI Spark. So I have
created a new environment called as my envy here, first of all, I will try to install
the PI spark library. So I'll just write pip install pi Spark. Okay, and let's see, in
this will focus on installation will focus on reading some data sets and try to see that
what are things we can actually do, okay, and after doing this, what we can actually
do is that, you can see that our PI spark has been installed, in order to check whether
the installation is perfect or not, I'll just write input by Spark. So this, this looks
perfectly fine it is working, you know, we are able to see that the PI spark is basically
installed properly. Now, you may be facing some kind of problems that is with respect
to pi Spark. So that is the reason why I'm telling you create a new environment. If you're
facing some kind of issue, just let me know what is the error that you're getting? Probably
writing in the comment section. Okay, now, let's do one thing, I'll just open an Excel
sheet. Okay. And probably I'll just try to create some data sets, I'll say name, probably
I'll just say name, and age, right. And suppose my name over here that I'm going to write
as crash, and also 31. I'm going to say Sudan shoe. right shoe down shoe, I will just say
okay, 30, probably, I'll just write some more names like Sonny, probably, I'll also give
the data as 29. So this three data, we'll just try to see how we can read this specific
file. Okay, I'm just going to save it. Let's see, I'll save it in the same location where
my Jupyter notebooks, guys, he created a folder, I guess, you can save it in any location where
your notebook file is opened, right? So it is not necessary. And just making sure that
you don't see any of my files. Okay, and I'm just saving it. Okay, I'm saving it as test
one here, you can see I'm saving it as test one dot CSV. So I'll save it. Let's keep this
particular file saved. Okay. Now, if I probably want to, you know, read with the pandas, what
we write we write PD dot read underscore CSV, right. And I basically use this particular
data sets called as test one dot CSV, right. So when I'm executing this here, you will
be able to see the specific information. Now when I really want to work with PI Spark,
always, first of all, remember, we need to start a spark session. And in order to start
a spark session, first of all, let me create some more fields. Just see this just follow
this particular steps, or with respect to creating a pass session. So I'll write from
pi Spark, dot SQL, input spark session. Ok. And then I'll execute this, you can see that
it is exhibiting fine then All right, sorry, I don't know what has opened. So I'll write
I'll create a variable called a spark. And probably I'll use the spark session dot builder.
And I'll say app name. And here I'll just give my session name. Okay. So it will be
like practice. Suppose I'm practicing this things. And then I can say get or create.
So when I actually execute this, you'll be able to see us barks session will get created.
And if you're executing for the first time, it will probably take some amount of time.
Other than that, if I've executed multiple times, then you will be able to work it. Now
here, you can definitely see that, in this, when you're executing in a local, they'll
always be only one cluster, but when you are actually working in the cloud, you can create
multiple clusters and instances okay. So the spark version that you will be using is V
3.1. point one. Here, you can see that this is basically present in the master, when probably
you will be working in multiple instances that you will be seeing masters and cluster
one, cluster two, all those kinds of information. Okay, so this is with respect to spark. Now,
let's just write the F of pi Spark, where I will try to read a data set with respect
to spark, okay. Now in order to read a data set, what I can write, I can write like this
spark dot read dot, there is a lot of options like CSV format, JDBC, Parque qL, schema,
table text, a lot of options there. So here we are going to take CSV, and here I'm just
going to write tips, one, tips, one dot CSV, right? And if I just try to execute it, here,
I'm getting some error saying that this particular file does not exist. Let me see. I think this
file is present. Just let me see guys, why this is not getting executed tips, one, b,
f file open. Here, I can see test one dot CSV, okay, sorry, I did not write the CSV
file, I guess, test one dot CSV. Okay, this has now worked. Now if I go and see the white
dots, pi Spark, it is showing this two strings, right, this two column C zero and C one. Now
here you can see that there is I've created this particular CSV file, right. And it is
just taking this A B as a default column probably. So it is saying c zero and C one. So what
we can actually do is that and probably if you really want to see your entire data set,
you can basically see like this df underscore pi spark dots show you here you will be able
to see name and age, there is this there's this information that I really want to make
my column name or age as my main column, right. But when I'm directly reading the CSV file
properly, we are getting underscore Cesar underscore c one. So in order to solve this,
what I will do is that we have a different technique file, right spark dot read dot option,
there is something called as option. And inside this option, what you can basically give is
that there will be an option with respect to header, I guess, see, there'll be something
like key value that you will be providing an option. So what you can do, you can just
write header, comma true. So whatever value the first column first row value will be there,
that will be considered as your header. And if I write CSV with respect to test one, now
I'm just going to read this test one data set test one dot CSV. Now once I execute this
here, you will be able to see that I'm able to get now named string h string, okay, but
let's see our complete data set. So here if I execute this now I'll be able to see the
entire data set with this particular columns. Okay, so let me just quickly save this in
my df underscore pi Spark. Okay, and now let's go and see that type of df underscore pi spark
Okay. Now when I execute this here, you will be able to see guys when I was reading this
df right when I was if I go and see the type of this with the help of pandas, here, you'll
be able to see that there is partners or core dot frame dot data frame, but here you will
be seeing that when you are reading this particular data set, it is of type pi spark dot SQL dot
data frame dot data frame. Yes, so that is pandas DataFrame this SQL dot data frame Rhonda,
yes, most of the API's are almost same the functionalities are seen a lot of things that
we will be learning as we go ahead. But if I quickly want to see my probably I don't
know whether head will work let's see, yes, head is also working. So if I use dot head,
probably you will be able to see the rows information are basically shown over here.
Now if I really want to provide see the more information regarding my columns, I will be
able to use something called as print schema. Okay. Now in this this print schema is just
like a df dot info which will actually tell about your columns like name is string and
ages string. Okay, so all these are some basic operations that you have actually done after
installation. Again, the main thing why I'm focusing on this is that just try to install
this PI spark and keep it ready for On my next session, I will be trying to show you
how we can change the data type, how we can work with data frames, how we can actually
do data pre processing, how we can handle null values, missing values, how we can delete
the columns, how we can do various things, all those things will, basically we'll be
discussing over there, how to drop columns. And so guys, we will be continuing the PI
spark series. And in this tutorial, we are actually going to see what our PI spark data
frames, we'll try to read the data set, check the data types of the columns, we basically
seen pi spark color schema, then we'll see that how we can select the columns and do
indexing. We'll see describe functionality that we have similar to pandas, and then we'll
try to see that how we can add new columns and probably drop columns. Now, this is just
the part one. So let me just write it down as part one, because after this, there will
also be one more part why this video will be important because in PI Spark, also, if
you're planning to apply emblem, you know, the machine learning libraries, you really
need to do data pre processing initially, you know, probably in the part two, we'll
try to see how to handle missing values. And all, we'll try to see how to filter the rows,
how we can probably put a filter condition and All right, so let's proceed. Before going
ahead, what I'm going to do is that, we will first of all, you have a data set called test
one. So I have taken three columns. One is name, age and experience. And then I have
a data set like Krish Taki 110, like this Sudan shoe Sunday, right. So this is some
data set, which you have saved in the same location. Now what I'm going to do first of
all, as usual, the first step with respect to pi spark is to build the PI spark session.
Now in order to build the PI spark session, I will write the code line by line. So please
make sure that you also do along with me, it will definitely be helpful. So I'm going
to write from pi spark dot SQL, input, sparks session, and then I'll create a variable,
oops, sorry, then I'll start to create a variable regarding my session. So I'll write spark
is equal to sparks session.we, basically, like builder dot app name. And here, I'm just
going to give my app name as practice I can just say, or liquid data frame practice or
data frame, right, something like this, since we are practicing data frame dot get or create
function. And this is how you actually start a session. So once again, if you are executing
for the first time, it will take some time, otherwise, it will, it is perfect to go. So
here is my entire Spark, it is running in memory, the version that it is running over
here. And obviously when you're running the local, you basically have one master node,
okay, and the app name is data frame. So to begin with, we will try to read the data set
again. So let's read the data set. Now reading the data set, I have already shown you multiple
ways. One is to read option one is to and since this is a CSV file, we'll try to read
it first first option, we'll try to see how we can actually read it. And then I'll show
you multiple ways of reading it. Okay, so I'll write spark dot read dot options. And
here in this option, we basically say key value, right, so here, I'll just make it as
header is equal to true so that, you know it should be considering my first row as the
header. And here I'll write it as header that's true dot CSV, inside the CSV. I'll give my
dataset name that is called as test one. dot c is right. Now when I execute this, probably,
I think you'll be able to see the data set. So here you are able to see that okay, it
is a data frame, and it will have features like name, age experience, right? So if I
want to see the complete data set, I'll just write dot show. So here is my entire data
set over here very clearly I can see it. Now. Let me just save this in a variable called
as df underscore pi Spark. Okay, so here is my entire data sets. Now, first thing, how
do we check the schema, let's check the schema. Okay, schema basically means the data types
like how we write in pandas df dot info, similarly we can write over here. So here you'll be
able to see that I have written df underscore pi spark dot print I think it should work
print schema or none type has spring theme Oh sorry. So I had written dot showed and
saved in a variable I'll remove this dot show let me execute it once again. And now if I
write print schema, here you will be able to see name, age and experience, but by default
it is taking a string even though in my Excel sheet, what we have done is that we have written
values probably this should be string, this should be integers, then they should be integers,
but why it is taking in a string. The reason it is probably taking a string guys because
by default, unless and until we don't give one more option in CSV, this CSV have one
option call us infer schema, okay? If I Don't make this as true, right? It will by default
consider all the features as you know in the stream value string values. So I'll execute
this now. And now if I go and see the F underscore pi spark dot print, Sima you will be able
to see that I'm getting name and string age as integer experience as integer and a level
is equal to two that basically means it can have null values. Okay, so this is one way
of reading it. One more way I'll try to show you which is pretty much simple so I can include
both header and infer schema in one thing itself. So I'll write d f underscore pi spark
is a call to spark dot read dot CSV and inside the CSV file first of all I will provide my
test file CSV Okay, and then here I will go ahead and write header probably is equal to
true and I can write infer schema is equal to, so when I write like this and if I write
df underscore pi spark dot show you here you will be able to see all my data set Okay,
so here is my entire data set. Now, if I go and see and execute this schema again it will
probably give me the same way like how we have we had over here, okay. So, here you
can see name is equal to string is equal to integer experience indigent, indigent, perfect.
So what are things we have done, we have understood about this one and right, if I go and see
the type of this, if I go and see the type of this, this is basically a data frame. pandas
also have a data frame. So if somebody asked you an interview, what is a data frame, you
can basically say that data frame is a data structures, you know, because inside this
you can perform various kinds of operations. So this is also one kind of data structures.
Okay, so what are things we have actually done, I've given introduction of data frame
reading the data set, not checking the data types of the column. In order to check the
data types of the column we have already just written print schema. Okay, now one more thing
that I can do after this, let's see selecting columns and indexing. First of all, let's
understand what columns are basically present how you can get all the column names. So in
order to get the column names, you can just write dot columns, okay. And when you execute
over here, you will be able to get the column name like name, age experience, perfect, this
is perfectly fine. Now this is my D F. Now suppose if I want to pick up some head elements,
also, I will be able to pick up because in pandas also you haven't had suppose I see
I want to get the top three records. I will be getting in this particular format in the
list format. Usually in pandas when we are using we usually get in a data frame format.
So here you will be seeing the combination of name age and expedience. Okay, like this.
This is my first row, this is my second row, this is my third. Okay, now coming to the
next thing that we are going to discuss now, how do I select a column? You know, I probably
want to pick up a column and see all the elements, right like how we do it in pandas. So first
of all, let me just write it like this PI spark dot show here will be able to see all
the columns are if I really want to pick up on the name column. Okay, so how do I do it?
Okay, let's let's actually see. Now in order to pick up the name column, there is very
simple functionality that we'll write which is called as pi spark dot select. And here,
I will just give my name column. Now once I execute this, you'll be able to see that
return type is data frame. Okay, the return type is data frame, and name is basically
a string. Now, if I write dot show, I will be able to see the entire column. Okay, so
when I do this, I'll be able to see this and if I try to find the type of this so sorry,
if I remove this dot show and see the type of this this is basically a data frame by
spark dot SQL dot data frame dot data for not pandas dot data frame. Okay, pretty much
simple. Now, suppose I want to pick up multiple rows like out sorry, multiple columns, like
I want to pick up name and experience probably two columns I want to pick up so what I'll
do I'll just make one changes. Here. Initially, I was providing my one column name like this.
After this what I will do, I will provide another column which is like experience, and
I'll execute this now once I execute this over here, you can see that guys I'm getting
a data frame with two features one is name and experience. Now, if I go and write dot
show, here you will be able to see my all my elements are basically present inside this
particular data frame. Pretty simple base, how do you select multiple rows? And yes,
here slicing definitely will not work because I tried doing slicing it was not working,
okay? And, okay, whenever you have any kind of concerns, always try to see the documentation,
the PI spark documentation, pretty much simple. Okay, this is one way that how we can actually
select the columns and probably see the rows. Okay. Now, let's show you if I just want to
pick up there is also one way like the see if I write the F of pi spark off named. If
I execute this here, you'll be able to see column name there. return type will be column
over here, if I'm directly picking because in pandas we directly pick like this, right.
And when we have this kind of columns definitely will just not, we are just able to understand
what this particular feature it is basically a column it is saying, okay, nothing more,
we won't be able to get the data set, there'll be no show function, it will be saying that
it is basically an error. So usually what we do, whenever we want to get a pick up any
kind of columns and try to see it, we basically need to select using this particular select
operation, which is my function. Okay, so these things have been done, guys, what we
try to understand now let's see how we can check the data types. So there is a functionality
which is called D types. So here you will be able to see name is called a string age
is equal to end experience is equal to int. And again, D types is pretty much similar
because we also use this in pandas. Okay, most of the functionalities are similar to
pandas, guys. So what are things we have actually done? Let's see, pi spark DataFrame, reading
the data set checking the data type, selecting columns and indexing, check the describe options
similar to pandas. So, we can also check out the describe options. So, let's see pi spark
dot describe and if I execute this, you will be able to see it will give you a data frame
summary is equal to string this this this information is there. Now when I write dot
show okay you will be able to see all this this is basically in the form of data frame
you may be thinking why this null values coming mean and standard division because understand
even in this it will take the string column also basically the values that are having
the data type of string away obviously, you don't have anything So, min and max is basically
taken on the index because in the zeros in the second index you will be able to see in
crushes then after that Sonny's there, okay look for the next and remaining all these
information are actually present again. So this is basically the same like the describe
options that we are actually seen, you know, probably in our pandas right, so similarly,
we have actually done that. Okay, so describe option is also done. So, let's go and see
adding columns, dropping columns. So adding columns and dropping columns is very, very
simple Guys, if we need to add the columns, so I'm just going to write the comment over
here, adding columns in a data frame, and this data frame is by pi spark data frame,
okay, now in order to add the column, so we have an amazing function add function, which
is called as the PI spark dot, there's something called as width column. Okay? Now, this width
column, if I see the functionality, it returns a new data frame by adding a class or replacing
the existing column that has the same name. Okay, so here, the first parameter that I'm
going to give is my column name. Suppose I want to pick up let's see, I'll pick up experience.
So I'll say experience, okay. And probably this will be my new column. After two years,
what will happen if experience after two years, you know, initially, the candidate is 10 years
experience, after two years, it will become 12. Right, so we'll try to put now the value,
this is my new column name, and what value it should have. So for that, I'll write df
pi Spark. And here, I'll say, probably, I'll take that same experience, I will multiplied
by I will add like two because after two years, the experience will get added by two, just
I'm taking one, one way of actually solving this, I can put any values I want guys, it
is up to you. Okay, and you can actually check it out. Okay, now after this, this is only
the two things that is required. And now if I execute it, you'll be able to see that the
same operation will happen. And now you in this data frame, you have 123 and four feature,
if I want to see the complete data set, I can add dot show, once I execute it now here
we'll be seeing that experience after two years is nothing but 266 because 10 plus 212
you have very very simple rest and this is what width column is basically told us and
you can also do different different things with respect to this. So this is how you get
add a column in a data frame. And again guys, this is not an in place operation, you basically
need to assign it to a variable in order to get reflected. Suppose if I want to get it
reflected, I really need to assign like this. And here now if I go and see my sorry, first
of all, let me remove the show. The show will not give us proper result. Okay, oh has no
attribute with column. Okay, sorry. So, this there was a problem with respect to this,
I'll read this dataset, because I replaced it completely right. Now I will execute it.
And once again, now is fine. Now if I go and write dot show, here, you will be able to
see the elements all properly given. Now, this was with respect to adding the columns
with data frame. Now, I probably need to drop the columns also. So drop the columns. Let's
see how we can actually drop the columns. Dropping the columns is pretty much simple
like how we usually drop this drop functionality. By default a column names you can give a list
of columns. You can Give a single column name. So suppose I say experience after two years,
I want to drop this, because who knows, after two years, what will happen. So let's drop
this, in order, drop this, just execute like this and just go and see dot show. Here, you
will be able to find out without that specific column. Again, this is not an in place operation,
you need to assign it to a variable, very simple. So let me just assign it to a variable
is equal to and please make sure that you remove this dot show dot show is the functionality,
right? Now, if I write this dot show, here, you will be able to see all the elements.
But now let's go ahead and see how to rename the column. So we are just doing this guys
because you really need to be very good at data pre processing, okay, so I'll write the
hot and there is another function, which is called as with column rename. Okay? Nine,
this you just give your existing and the new column name. Suppose I have my existing column
name over here, I'll say, name. And I'll say new name. Okay, and just executed. And now,
if I go and just like dot show, and try to see the elements here, you will be able to
see instead of name, there will be something called as new name. Right. Now, this is what
I had to actually discuss. I am just writing one more point over here. We have also discussed
about renaming columns, right? Yes, this is just the part one or data frames, the part
two, we'll try to do something called as filter operation. And in filter operation, we'll
try to see various operation because it will be pretty much amazing, you'll be able to
learn a lot probably this is the tutorial three, which is the part three with respect
to data frame operations. In this particular video, we are going to see how we can handle
missing values, null values, you know. So in short, this many things we'll actually
try to do, we'll see how to drop columns, we'll see how to drop rows, then we'll see
when when we are dropping rows, probably based on a null values, we'll try to drop a rose.
And then we'll try to see what are the various parameters in dropping functionalities and
handling missing value by Mean, Median or mode. Okay, so here, I'm just going to write
it as mean, median, and more probably, right. So all these things we are actually going
to see, again, the main thing is that, I really want to show you that how we can handle the
missing values. This is pretty much important because in pandas, and also we try to do this
in a scale on we have some kind of inbuilt function. So let's proceed. Whenever we usually
start pi Spark, whenever we are working with PI Spark, we really need to start a PI spark
session. So I hope till now you all are familiar. So I'll write for pi spark dot SQL, I'm going
to import sparks session, again. And then I'm going to create a variable with Spark.
And then here I'm going to write spark session dot builder. Not happening. Okay, not app
name. Again, let me just keep this app name as practice, okay, because I'm just practicing
things, then I like get or create and just execute this. So overall, it will take some
time to get executed. Yes, it has got executed fine. Now for this, I've just created a very
simple data set, which looks like this. I have a column like name, age, experience,
salary. So these are all my names, all the candidate names, and probably there are some
values which are left blank. Here, you can see some values I've left blank. So we'll
try to see how to probably drop a null values or how to handle this particular missing values
or not. Okay, so let's proceed. So first of all, in order to read the data set, I'll just
write spark dot read dot CSV. And here, I'm just going to use the CSV file name that's
to dot CSV. And it is saved in the same location where this particular file is Anyhow, I will
be providing the you in this data also. And I'm going to use header is equal to true and
probably there is also info schema is equal to true so that I'll be able to get the data
set properly. So probably when I'm reading this, you'll be able to see this is my data
frame that I'm actually getting if you want to see the entire data set, this will be like
show us dot show. And this is your entire data set here you are having null values under
perfect. So what let me do one thing, let me just save this in a variable. So I'll write
df underscore pi Spark. So if I go and now check, dots show and this is my entire data
set. Okay, perfect. We are pretty much good 10 Here we are working fine. With respect
to this. We know we have actually read some kind of data set also. Now, probably First,
let's start. How do we drop the columns? dropping the columns is very, very simple guy. Suppose
I want to drop Name column, then I just use df dot drop and provide my column name like
this right? So column, right column name, suppose I'll write df.pi spark and here column
name will be named. So let me write it as name. And I can basically go and check out
my dot show. And then you will be able to see all the features that are actually present.
This is pretty simple, which I also showed you probably in the previous session also,
okay. And this is how it is basically done basically dropping your feature or a columns,
but our main focus is dropping the non value. So right now, let me just write df.pi spark
dot show. So this is my data set, right? Now let's see how to drop this specific rows based
on the null values. So over here, I'll just use df.by spark.na. Okay, there's something
called as na and then you have drop, fill and replace. So first of all, I'll start with
dropped. Now, inside this particular drop, always remember if I don't give anything okay
and just exhibited here you will be able to see wherever there is a null values those
all rows will get deleted. So, here we will be seeing that this last three rows are not
present, right? So here you can see Shibam this particular value is present the meaning
all the rows have been removed perfect right. So not a problem at all. So, he had you in
short what you're doing is that whenever you use.na dot drop, it is just going to drop
wherever it is going to drop those rows wherever none values are actually present or null values
are actually present Okay, perfect This match is fine. If I go and search in the drop, there
are two main features one is how and one is threshold and then one is subset. So, let's
try to understand this particular features. Now, first, I will start with how any is equal
to how I just tried like this okay. So, suppose if I write df.pi spark.na dot drop and if
my how the how value can have two values one is any one is all Okay, one is any one is
on any if the value selected as any drop a row if it contains any notes like even though
there is just one okay one of the rich tuners or there is an entire mouth you know none
by default it is going to get dropped okay. But how is the call to all when do we use
all that basically means suppose if in your future you have suppose if any rule you have
all the values as null in this case you have 36 one value this will not get dropped, but
if he in a record you have all the values and ml then only it will get dropped okay.
So, let's see whether this will work or not definitely is not going to work because I
know all at least one values or at least one values one one value one non non null values
always there right? If I'm using How is equal to all it is going to drop those records which
is having completely not by default this how value should be having any right so, by default
it is any any basically says that whether there is one or two now we are just going
to drop it drop those specific records right. Pretty much simple this was what how was and
let's go ahead and try to understand with respect to threshold What is this threshold
I will tell you what is this threshold Now, let me just use this Okay, I know how is any
But there is another one more option called as thrush nine Thresh what we do is that suppose
if I right let's keep the threshold as two it basically says that suppose over here in
this particular case if the threshold value is two Okay, let's let's first of all execute
it you'll be able to see that the last column has got deleted over here Okay, that's the
last row has got deleted why it has got deleted because we have kept the threshold value is
two it says that at least two non null values should be present okay at least two non null
values now here you have two non null values like more than 40,000 Okay, here you just
have one non null values. So, because of that it got deleted suppose if you had two non
null values over here see 34 and 10 this is not got deleted This is same over here 3410
right 3410 you have if I go and show you 3410 over here and 38,000 there at least here you
add three normal values here you add to normal values. So here whenever we give some threshold
values to that basically it will go and check whether in that specific row at least two
non null values are there if it is there, it is just going to keep that row otherwise
it is just going to delete it that is what you cannot you can also check out with the
one so if I go and see one then you can see that all this particular rows are there because
it will just go and check okay here one non nine values are there Here it is there. If
I make it as three, okay, let's see what it will come. Now here you can see at least this
is their remaining all has been deleted right see over here you had only two non non values
here also you how do you add three so this is the 3410 38,009 so here you can see the
value that is understanding with respect to threshold. Now, let's go ahead with the another
one we'll just call a subset. So here I'm just going to write it as subset because this
is the third parameter inside my drop feature. And remember, these are features are pretty
much simple with respect to if you have worked with pandas, the same thing we are working
away subset in the subset we can actually provide. Suppose I'll say in the subject,
let's remove threshold I don't want to keep any threshold let's say I just want to drop
nine values only for my specific column probably only from experience column then I can basically
give it as a subset. So, from the experience column you can see that wherever there was
none values in the records all those that hold record has been deleted right. So like
this you can apply with respect to the suppose you want to apply it in age you can also apply
this right wherever there was none values that old record has got deleted in the age
column. So this is with respect to subset so I hope you are getting an idea guys, this
is pretty much God because the same thing we are trying to do right we are we are actually
trying to apply whatever things we actually did in pandas and this is very, very handy
when you have working with missing data. Okay. Let's go with the next thing. Now let's go
and fill the missing value filling the missing value nine order to fill the missing value
again I'll be using Vf eyespot dot fill dot okay sorry na dot fill okay. And inside this
this field will take two parameters one is value and the one is subset Okay. Now, suppose
if I go and give value like this, suppose I say missing value and if I go and write
dot show, then what it is going to do whenever there is a non valid is going to replace with
missing values. So, here you can see here the null value is there. So, missing value
missing value missing value. Suppose, if you really want to perform this missing value
handling in only a specific column, then you can basically write your column name also
like this. So, this will be my Excel subset, okay. I can also give multiple records like
this. See, I can also give multiple Gods like experience karma probably age, karma age in
call enlist, right, when I give like this, then it this kind of functionalities will
happen in two columns, right? Pretty much simple. So by now next step, what we are going
to do is that, we are going to take a specific column, and probably we are going to handle
the missing values with the help of mean of that specific column or median of that specific
column. So, right now, if I go and check out my bf got pi spark here, if I go and see my
dot show value, this is my entire data set over here. Now, what I'm going to do is that
I'm going to take this particular experience column and probably replace the null values
with the mean of the experience itself. So in order to do this, I'm going to use an inbuilt
function. And guys, if you know about imputing function, we basically use that with the help
of SK learn also in PI Spark, also, we have an impure function. So I'm just going to copy
and paste the code over here to make it very, very simple. From pi spark.ml dot feature
import in pewter, here, I'm just going to give my input columns that is age experience
salary, probably I want to apply for every column over here. And then I'm just saying
that for age experience salary, I'm just going to find out this dot format dot c output columns.
And then I'm going to keep the strategy as mean you can also change the strategy has
immediate more than everything. So I'll execute this this has got executed fine, and then
we are just going to right fit and transform. So imputed reflect df of pi spark dot transform.
So once I execute this guy's here, you will be able to see that we are going to create
multiple columns with underscore imputed as this name. So here you can see h underscore
imputed. In short, what we have done we have tried some kind of mean functionality over
here that basically means the null value has been replaced by mean. So over here you can
see this null value is replaced by 28. Similarly, this to null value is replaced with 10 and
five sorry, five. This is what is the experience imputed column. Over here you will be seeing
that wherever there is a null value it is being replaced by the mean of the experience
column, the mean of the age column and mean or the salary column. And this way, you'll
be able to do it if you really want to go ahead with median. Just go and change this
mean to median and just try to execute it. Here. Now you'll be able to see the median
value and here is your initial null columns, which had sorry, here are the columns which
has none values. And here are all the columns which has basically the imputed values right
with respect to mean median. So guys, today we are in the tutorial for of pi spark data
frames. And here in this particular video, we are going to discuss about filter operation.
A filter operation is pretty much important for data pre processing technique. If you
want to retrieve some of the records based on some kind of conditions, or some kind of
Boolean conditions, we can definitely do that with the help of filter operation. Now guys,
please make sure that you follow this particular playlist with respect to pi Spark, I will
be uploading more and more videos as we go ahead. And remember one more thing there was
a lot of complaints from people are telling to upload SQL with Python. Don't worry parallely
I'll start uploading SQL with Python. I'm extremely sorry, because of some delay, because
I was doing some kind of work busy with something. But I'll make sure that I'll try to upload
all the videos. So parallely SQL with Python will also get uploaded. So let's proceed.
Now first of all, let me go and make some cell. Now today for this app taken our data
set a small data set, which is called as test one dot CSV. Here I have some data set like
name a just experience and salary. And I'm just going to use this and try to show you
some of the example with respect to filter operation. Initially, whenever you want to
work with PI Spark, you have to make sure that you install all the libraries. So I'm
going to use plus pi spark dot SQL import spark session. And this will actually help
us to create a spark session, right. And that is the first step whenever we want to basically
work with PI Spark, right. So we'll be using sparks session dot builder dot app name, then
I'm just going to create my app name as data frame. And basically right get our create
function, which will actually help me to quickly create a spark session, I think this is pretty
much familiar with every one of you. And let's proceed unless try to read a specific data
set. So over here, what I'm going to do, I'm just going to create a variable, df underscore
pi Spark, and I'm going to use the spark variable dot read dot CSV. And here, I'm just going
to consider my data set test one dot CSV. And here, I'm just going to make sure that
we have this particular option selected header is equal to true and in for schema is equal
to true I think this all I've actually explained you then if I write df.pi spark dot show up,
here, you'll be able to see your data set. Okay, so it is reading, let's see how we will
get the output. So this is my entire output. Now guys, as I showed you that we will be
working on a filter operation, I will try to retrieve some of the records based on some
conditions. Remember, filters also are available in pandas. But there you try to write in a
different way. Let me just show you how we can perform filter operation by using pi Spark.
Okay, so filter operations, let me make this as a markdown. So it looks big. looks amazing.
Let me make some more cells Perfect. Now first step, how do I do a filter operation, suppose
I want to find out salary of the people who are less than probably 20,000. Okay, less
than or equal to 20,000. Again, I'd like that less than or equal to 20,000. Now for this,
there are two ways how we can write it first way, I will just try to use the filter operation.
So you have like dot filter. And here, you just have to specify the condition that you
want. Suppose I'll write salary is less than or equal to 20,000. Remember, this salary
should be the same name of the column over here, right? And when I write dot show, you
will be able to see this specific record. And you'll be able to see, okay, less than
or equal to 20,000 is this foreign for people, Sonny Paul has shown sober here, you will
be able to see all these things along with the experience right? Now this is one way,
probably I just want to pick up. After putting this particular condition, I want to pick
up two columns. So what I can do, I can use this. And then I can basically write dot select.
And here, I'm going to specify my name, probably I want the name and age, name, comma, age.
So dot show, I'll do this. Now this is how you can actually do it again. Over here, you
can see that name underscore age is actually there. And you are able to get that specific
information after this. Probably I want to do some of the operation you can actually
do less than greater than whatever things you want. Probably I'm going to put two different
conditions Then how should I put it? Let's see. Let's see for that also. So I'll write
divide df pi spark dot theta. And here I am going to specify my first condition. Suppose
this is one way. This is one way by using filter operation. Also guys, then this conditions
that I'm writing, I can also write something like this See this, suppose if I write df
pi spark of salary suppose salary as less than or equal to 20,000, I can also write
like this, I will also be able to get the same output. So here, you'll be able to see
the same output over here. Now, suppose I want to write multiple conditions, how do
I write, it's very simple, I will take this, this is, first of all, this is one of my condition.
So I'm just going to use this condition. And I can also use an AND operation you know,
so I'll say and, or, or any kind of operation that you want, probably, I want to say that
df underscore pi salary is great, less than or equal to 2000 20,000. And probably I want
a df pi spark of salary salary greater than or equal to 15,000. So I'll be able to get
all those specific records, okay. And again, I'll try to put this in another brackets,
make sure that you do this, otherwise, you will be getting an error. Okay? Very, very
simple, guys. So let's see how I've actually written it is something like this d f underscore
pi spark dot filter df or pi spark of salary is less than or equal to 20,000 greater than
equal to 15. If I execute, you will be able to see between 15,000 to 20,000, you'll be
able to find out you can also write or then you will be able to get all the different
different values. Now, this is our kind of filter operation that you can basically specify,
remember, this will be pretty much handy when you are probably retrieving some of the records
with respect to any kind of datasets, and you can try different different things. So
this is one way where you are actually directly providing your column name and putting a condition
internally this PI spark actually pi spark DataFrame understands it and you will be able
to get the output, right. So yes, this was it all about this particular video, I hope
you like it, I hope you liked this particular filter operation, just try to do it from your
side. Okay, one more operation is basically pending, I can also write like this serious
everybody, I can basically say that, okay. Probably, I can use this operation, which
is called a knot operation. Let's see how this knot operation will be coming. Okay.
Basically, the inverse condition operation, we basically say, so I'll be using this, okay.
And this, and inside this, I can put a knot condition which like this, so I'll say this
is a knot of df of pi spark salary is less than or equal to 20,000. So anything that
is greater than 20,000 will be given over here. Okay, so inverse operation, you can
see in words filter operation, guys, we will be continuing the PI spark series. And in
this particular video, we are going to see group by an aggregate function. Already I
have actually created somewhere around four tutorials on pi Spark, this is basically the
fifth tutorial. And again, this is a part of a data frame, why we should actually use
group by an aggregate functions again for doing some kind of data pre processing. So
let's begin for this particular data set. For this particular problem, I have created
a dataset which has three features, like name departments and salary, and you have some
of the data like crash data science, salary, right, something like this. So we're here
in short, if I want to basically understand about this particular data set, there are
some departments probably where crash and other people teach. And based on different
different departments, they get a different different salary. So let's see how we can
perform different different group by an aggregate functions and see how we can pre process or
how we can get some or retrieve some kind of results from this particular data. So to
begin with, what we are going to do, we are first of all going to import pi Spark SQL
import spark session. As usual, we have to create a spark session. So after this, what
we have to do, I'll create a spark variable. So I'll use spark session dot builder dot
happening. I think everybody must be familiar with this. But again, I'm trying to show you
this one, so let me write it as aggregate dot get auto create. So now I've actually
created a spark session. Okay, probably this will take some time. Now if I go and check
out my spark variable, so here is your entire information, okay, with respect to this particular
spark video, now let's go ahead and try to read the data set. Now I will just write df
underscore pi Spark. And then here I'll write spark dot read dot CSV. The CSV file name
is basically test three dot CSV, and remember I'll be giving this particular CSV file in
the GitHub also. And then I'll be using header is equal to true comma, infer schema is equal
to two. Now this is my df underscore pi Spark. Now what I will do in the next statement,
I will write df underscore pi Spark. dot show right. Now here you will be able to see that
I am actually being able to see all the datasets. Here I have named departments and salary on
all this particular information. If I really want to see the schema or the columns, like
which all columns where it belongs to this like a data type, so I can definitely use
the F underscore pi spark dot print schema, right. And now here you can see name is a
string, department is string, and salary is basically an integer. Okay, now let's perform
some group by operation First we'll start by group by operation, probably I want to
group by name, and probably try to see what will be the mean average salary. You know,
well what suppose let's let's take a specific example over here. So I'll write TF dot underscore
pi spark dot group by suppose I want to go and check who is having the maximum salary
out of all these people that are present in this particular data set. So, I will first
of all group by name, if I execute this, you can see that we will be getting a return type
of group data at some specific memory location. And you should always know that guys, group
by aggregate functions works together. That basically means first of all we are we need
to apply a group by functionality and then we need to apply an aggregate function. So
aggregate function Do you really want to check just press dot and press tab. So here, you
will be able to see a lot of different different function examples like aggregate average count
max mean, by better many more right? Now what I'm going to do, I'm just going to use this
dot sum because I really need to find which is the maximum salary from out of all this
particular employees who is having the maximum salary. So here I'll say Datsun and if I execute
it, you will be able to see that we are getting sequel dot data frame, which has name and
sum of salary This is very much important Let's sum of salary because I really want
to have the sum of the salary remember, we cannot apply sum on the string. So, that is
the reason it has not done over here it is just giving you the name because we have grouped
by name and this dot some will just get applied on this particular salary. Now, if I go and
write dot show here you will be able to see so the answer will be here is having the highest
salary of 35,000 Sonny has 12,000 Krish has 19,000 Mahesh has 7000 So, if you go and see
over here, so, the uncial is basically present here here and in big data. So, overall, his
salary should be 35,000 if you compute it, similarly, you can go and compute my salary
over here, over here by just calculating this and then you can also compute sunny salary.
And you can also see my hash and so this is one just an example. So here I will just write
we have grouped to find the maximum salary. And definitely over here from this entire
observation, we can retrieve that sudhanshu is having the highest salary. Okay, now let's
go to one step ahead. One more step ahead. Now we'll try to group by departments to find
out which department gives maximum salary Okay, we are going to do a group by departments
which gives maximum standard suppose this is my, this is my requirement, okay, and different
different types of requirement may come, I'm just trying to show you some examples. I'm
just going to copy this. I'm going to use this department Okay. And then I'm basically
going to say dot some dots show, if I execute it, let me see department is a wrong column
name. So I'll write departments it is department. So let me write this. Now if I go and see
IoT over here gives some salary around 115 1000 to the simplest to all the employees
right combined because we are doing the some big data gives somewhere around 15,000 data
science gifts around 43,000 I suppose if I go and see big data over here 4000 4000 8000
8013 1000 13,000 15,000 so I hope I'm getting yes Big Data is actually giving us 15,000
so you can go and calculate it. Suppose if you want to find out the mean you can also
find out the mean okay, so let me just write it over here. Just copy this entire thing,
paste it over here and read me right instead of instead of some I'll try to write mean
so by default the mean salary here you can see that for a particular employee somewhere
for IoT it is 7500 because this mean will be based on how many number of people are
working in the department right. So like this, you can actually find out now I can also check
one more thing I can copy this I can try to find out how many number of employees are
actually working based on the department so I can use dot Count and then if I go and execute
this properly This is a method Okay. Now here you will be seeing that IoT there are two
people in big data there are four people in data science they are four people. So, four
plus four plus eight total employees that are present over here is basically now, one
more way that I can basically apply a directly aggregate function also. Now, see these are
all some of the examples and again you can do different different groupbuy let me use
df pi spark suppose I say dot aggregate okay and inside this I will just give my key value
pairs like this suppose I say let me say that salary I want to find out the sum of the salaries
the overall salary that is basically given to the entire total expenditure inside. So,
the total expenditure that you will be able to see somewhere on 73,000 All right. So,
we can also apply direct aggregate function otherwise this all are also aggregate function
which we basically apply after after you know applying a group by function. Now, suppose
these are probably the salary I want to find out suppose I take this example I want to
find out the maximum salary that the person is basically getting who is getting the maximum
salary sorry. So, here instead of writing dot sum now I'll write max dot show. Now,
here you can see, Sudan shows basically getting 20,000 over here 10 10,000 crashes getting
10,000 matches getting four for 4000 right. So, all this particular data is there see,
Krishna is basically getting with respect to data science over here 10,000 So, it has
basically picked up it is not picking up both the records, but at least when it is grouping
by name, and then it is showing this particular data that time you will be able to see it,
let's see whether I will be also able to see this or not. So, group by if I score and write
min. So here you will be able to see minimum value with respect to different different
records when I'm grouping by here, you will be able to see that Sudan shoe, sorry. So
the answer is getting a minimum salary of 5000 2000 crushers getting a minimum salary
of 4000. Right, we can also get that particular information. Now let's see what all different
different types of operation are, their average is also there. So if I write a VG, it's just
like mean only guys. So this is basically the mean salary that probably, again, you
can check out different different functionalities, why these all things are basically required.
understand one thing is that you really need to do a lot of data pre processing a lot of
retrieving skills that you basically do, you can check it out this one and you can do different
different functionalities as you like it spark emulate also has an amazing documentation
with respect to various examples. So here, you can go and click on examples. And basically
check out this particular documentation, you can actually see different different kinds
of examples how it is basically done. But with respect to spark ml, there are two different
techniques. One is the RDD techniques, and one is the data frame API's. Now what we are
going to do, guys, data frame API is the most recent one, you know, and it is pretty much
famously used everywhere. So we'll be focusing on data frame API. That is the reason why
we learn DataFrame in PI spark very much nicely. So we'll try to learn through data frame API's.
And we'll try to see the technique how we can basically solve a machine learning use
case. Now let's go and see one very simple example guys. And always remember, the documentation
is pretty much amazingly given, you can actually check out over here and try to read all these
things. Okay. So let's proceed. And let's try to see, what are things we can actually
do. In this particular example, I'm just going to take a simple machine learning problem
statement. So let me just open a specific data set for you all, and then probably will
try to do it. Okay. So this is my data set. Guys. I know there are not many records over
here. Okay, so I have a data set, which has like name, age, experience and salary. And
this is just a simple problem statement to just show you that how powerful SPARC actually
is, with respect to M lab libraries just to show you a demo. From the next video I'll
be showing you detailed explanation of the regression algorithms how we can basically
do the implementation all theoretical and all guys have already uploaded you can see
over here, I'll be doing see after this tutorial five this is basically the tutorial six I'll
try to add it after this and then whenever I will be uploading the linear regression
algorithm before that please make sure that you watch this match infusion. Okay, I have
uploaded this specific video also in the same playlist. So after this tutorial 26 St. yt
saying tutorial 26 because I have also added this in my machine learning playlist. So after
this, you'll also be able to find out when we'll be discussing about linear regression
how we can implement in depth That video will also get uploaded. So let's proceed. And here
is my entire data set. Guys, this is my data set. Now what I have to do is that based on
age and experience, I need to predict the salary, very simple use case, not not much
data pre processing, not much transformation, not much standardization and all okay, I'm
just going to take up this two independent feature. And I will be predicting the salary
of this particular person based on age and experience. Okay, so this is what I'm actually
going to do. So here is a perfect example, again, detailee, I'll try to show you how
to basically implement line by line probably from the upcoming videos where I'll be discussing
about linear regression, and on and if I go see this particular problem, this is also
a linear regression example. Okay, so let's go here. First of all, as usual, I will be
creating a spark session. So I'll use from pi spark dot SQL import spark session. And
then I'm going to use spark session dot builder dot app name. Here, I'm actually creating
a spark session on missing, let me execute it, I think this is pretty much familiar,
you're familiar with this, then what I'm going to do over here is that we are just going
to read this particular data set with test one dot CSV header is equal to true and infer
schema is equal to true. So when I go and see my training dot show, these are all my
features over here, perfect, I'll be giving you this data set. Also, don't worry. Now,
from this particular data set, if I go and check out my print schema, so here, you will
be able to see that I'm getting this particular information. This is my entire print schema.
Over here, I have features like name, age, experience, and salary. Now if I go and see
train dot columns, this is my training dot columns. Now always remember guys in PI Spark,
we use a different fund or mechanism or a kind of data pre processing before See, usually
what we do is that in non by using machine learning algorithms that are available net
scalar, we basically do a train test split, right. And then we first of all, divide that
into independent features dependent features, right, which we use an X and Y variable, and
then we do train test split. By doing this, in in in PI Spark, we just do some different
techniques, what we do is that yes, we have to basically create a way where I can group
all my independent features. So probably I'll try to create vector assembler, we basically
say it as a vector assembler see where the class I've actually used, the vector assembler
will make sure that I have all my features together grouped like this group like this,
in the form of age and experience, suppose over here, my two main features are age and
experience, which are my independent feature right. So it will be grouped like this, for
every record, it will be grouped like this, okay, for every report, it will be grouped
like this, and then what I will be doing is that I will be treating this group as a different
feature. So this will basically be my new feature, right. And remember, this new feature
is my independent feature. So my independent feature will look like this in a group of
H comma experience, which will be treated as a new feature. And this is exactly my independent
feature. So I have to group this particular way. So in order to group this, what we do
is that in PI Spark, we use something called as vector assembler. So in this vector assembler
is basically present in pi spark.ml dot feature, we use this vector assembler, we use two things.
One is input column, which all column we are basically taking to group it. So two columns,
one is age and experience, right, we don't have to take name because name is fixed, it
is a string. Yes, if category features are there, what we do what we need to do, we will
convert that into some numerical representation that I'll be showing you when I'm doing some
in depth implementation, the upcoming videos of linear regression, logistic regression
and all. But here, you'll be able to see that I'm going to take input columns age come experience
in the form of a list. And then I will try to group this and create a new column, which
is called as independent feature over here, right, that is what I'm actually doing. So
if I go and execute this vector assembler, so here, I'm got my feature assembler, and
then I do dot transform, I do dot transform on my training data. So this is basically
my training data when I do this, and when I do output dot show here, you'll be able
to see I had this all features, and a new feature has been created, which is called
as independent features. Okay, so we have actually created an independent feature. And
you can see over here, age, and experience, age and experience, age and experience, so
this is my grouped rows that I've actually got, in short, what I've done, I've combined
this two column and made it as a single independent feature, okay? Now, this will be my input
feature. Okay. And this will be my output feature, and we'll try to train the model.
Okay, so over here now, if I go and see output dot columns, I have name, age experience,
salary independent feature. Now what I'll do out of this, let's take which all data
set I'm actually interested in. So out of this, I will just be interested in this two
data. Separate independent features and salary salary will be my output feature, the y variable,
right, and this will be my input feature. So what I'm going to do, I am going to select
output dot select independent features and salary. And I'm going to put that in my finalized
underscore data. That is what I'm actually doing. If I now go and see my dot show here,
you will be able to see the entire thing. Now, this are my independent feature, these
are my dependent feature. Now the first step, what we do we do it train test split, like
how we do it in a scalar. So in order to do a train test split, I use a function inside
my finalized data, which is called as random split. Remember, guys, I'll try to explain
you line by line by implementing it when I'm doing a bigger project. Right now, since this
is just an introduction session, I really want to explain you how things are actually
done. So this is basically my train test split. So here, let me write it down the comment,
train test split. And I will be using the linear regression like how we import a classroom
a scaler. And similarly, by using pi spark.ml, dot regression, import linear regression,
and then I'm doing a random slipped off 75 to 25%. That basically means my training data
set will be having 75 percentage of the data, and my test data set will be having 25 percentage
of the data, right, then after that, I'll be using a surrogate linear regression in
this you have two important variables that we need to get one is feature columns, how
many number of feature columns are there that is completely present in this independent
feature. So I'm giving it over here. Similarly, in label column, this is my second feature
that I have to give this is my output feature. So after I provide both these things, and
do a fit on train data, I will be able to find out my coefficient, these are my coefficients.
These are my intercepts. And here, I can now evaluate and see my output, right. So by using
the evaluate function, we will be able to see the output and inside this there'll be
a prediction variable, which will have the output. Okay, so this is my prediction. This
is my salary, the real value. This is my other thing. Now, if I really want to find out the
other important part parameters or metrics, let's press tab here, you will be able to
see mean absolute error. pred underscore result dot mean squared error, suppose if I do see
this particular word value, you will be able to understand that how the model is actually
performing. So that's just a various a very simple example, guys. Don't worry, I will
be explaining in depth probably in the upcoming videos when we'll be starting from linear
regression. Now remember, the next video is about linear regression implementation in
depth implementation, right? Help, you know what exactly is a data bricks platform. And
this is an amazing platform where you can actually use PI Spark, all you can work with
Apache Spark. And one more amazing thing about this particular platform is that they also
provide you cluster instances. So suppose if you have a huge amount of data set, probably
you want to distribute the parallel processing or probably want to distribute it in multiple
clusters, you can definitely do with the help of data bricks. Now, if I really want to use
this particular platform, there are two ways one is for community version, and one is for
the paid version, which is like Azure, or AWS cloud, you can actually use in the backend,
data bricks also helps you to implement ml flow, okay, and this ml flow is with respect
to the CI CD pipeline. So you can also perform those kinds of experiments also, altogether,
an amazing platform. What I will be focusing in my youtube channel is that I will try to
show you both with the community version also. And in the upcoming videos, we'll try to execute,
try to execute with both AWS and Azure. When we are using AWS and Azure, what we will try
to do is that whenever we create the instances, multiple instances, you know, that will try
to create in this particular cloud platform will also try to pull the data from s3 bucket,
which is the storage unit in AWS, and try to show you that how we can work with huge
huge data sets, right all those things when we actually should as we go ahead. Now let's
understand what is data bricks is it is an open and unified data analytics platform for
data engineering, data science and machine learning analytics. Remember why data bricks
actually helps us to perform data engineering and when I say data engineering, probably
working with big data, it also helps us to execute some machine learning algorithms.
Probably any kind of data science problem statement will be able to do it. And Rob,
let's suppose three kinds of platform cloud platforms one is AWS, Microsoft Azure and
Google Cloud. Now, if you really want to start start with this, we'll start with the community
version. And you just have to go into this particular URL and just type try data bricks,
and then you just enter all your details to get registered for free. Now once you are
registered, when you want to get started for free, you'll get two options over there. On
the right hand side you will be seeing the community version which you really want to
use it for free. And in the left hand side you will be having an option where it I will
tell you that you need to work with this three cloud platforms. And you can select that also.
So for right now, I will try to show you a community version, which will be very simple,
very, very easy. So let's go to the community version. So this is how the community version
actually looks like. If you really want to go into the cloud version, you can just click
on upgrade. Okay, so just click on upgrade. And this is the URL of the community version
and this version of this URL you will be able to get when you register for the community
version tomorrow. So you think that you probably want to work with the cloud, you just have
to click on this upgrade now. Now in this, you will be able to see three things one is
explore to the Explore the Quick Start tutorial, important explore data, create a blank notebook,
and many more things. Over here, what kind of tasks you'll be able to do in the community
version one is you can create a new notebook, you can create a table, create a cluster,
create new ml flow experiments, I hope I actually showed you ml flow experience, we can also
create this ml Flow Experiment by combining to a database in the backend, okay, then we
can import libraries, read documentation, do a lot of tasks. Now first of all, what
we need to do is that probably I'll create a cluster. And I in order to create a cluster,
I will click on this create a cluster here, you can basically just write down any cluster
name. Suppose I'll say Apache, or I'll just say, pi Spark cluster. Suppose this is my
cluster that I want to basically create. Okay, and then here by default, over here, you can
see 8.2 scaler, this one spark 3.1 point one is selected. So we'll be working with spark
3.1 point one, if you remember, in my local also, I actually installed this particular
version only, okay, by default, you will be able to see that they will be providing you
one instance with 15 GB memory, and some more configuration. If you really want to upgrade
your configuration, you can basically go and click over here, okay. And remember, in the
free version, you will be able to work in an instance unless and until it is not idle
for two hours, otherwise it will get disconnected. So over here you can see one driver 15.3,
GB memory, two cores and one dBu. Okay, all these things are there, you can also understand
what the view is DB is nothing but a data, bricks unit. If you want to click over here,
you will be able to understand what exactly the view is okay. And you will be able to
select a cloud and basically work with that perfect. till here, everything is fine. Let's
start, let's create the cluster. Now, once you you will be seeing that the cluster is
basically getting created. You also have lot of options over here like notebook libraries,
event logs, spark UI driver logs, and all. It's not like you just have, you will be able
to work with Python over here. Here you have lots of options. Okay. So suppose if I go
and click on libraries, and if I click on install new here, you will be having an option
to upload the libraries, you can also install the libraries from pi pi from Maven, which
will basically use along with Java, and then you have different different workspace. So
here, what I'm going to do is that suppose you select by by and suppose you want to install
some of the libraries like TensorFlow, or probably want to go with Kara's, you can basically
write like this, probably I want a scale on, you know, so I can just get comma separated
and start installing them. Okay. But by default, I know I'm going to work with PI Spark, so
I'm not going to install any libraries. So let's see how much time this will probably
take. This is just getting executed over here. And let's go back to my home. So apart from
this year, you will be also able to upload the data set and that particular data will
give you an environment like how you're storing the data in the loop okay. So before the cluster
is getting created, okay, now the cluster has got created here you can see pi spark
it is in running state. Now. And remember, this cluster only has one instance, if you
want to create multiple clusters, we have to use the cloud platform one which will be
chargeable. Okay? So in here, I'm going to click on export the data. Now see you guys
you can upload the data you can also bring from s3 bucket or you can also then bring
from s3 bucket. These are all things I'll try to show you. Then you also have dbfs you
know, and DB FF, you will basically be storing inside this particular format. Then you have
other data sources like Amazon redshift, Amazon kinases, Amazon kinases is basically used
for live streaming data. Okay. Then you have Cassandra, Cassandra is also a no SQL database
and JDBC lastic search so different different data sets, data sources also there will also
try to see with a set of partners integration. So they are also like real time capture in
the data lake and many more things out there. So you can definitely have a look onto this.
Now what I'm going to do is that I'm just going to click over here and try to upload
our data. Let me just see. Let me just upload a data sets. I'll just go to my PI spark folder.
So here is my PI Spark. So I'm just going to upload the test data set probably alright.
upload this test one. Now here you can see that the data set has been uploaded. Now it
is saying that create table with UI CREATE TABLE in Node back notebook. Suppose if I
go and click this, you know. So here you will be able to see this is the code, this is the
entire code to basically create a table in the UI. But what I really want to do is that
I don't want to create a table instead, I will just try to execute some of the PI spark
code, which we have already learned. And now, okay, so what I'm going to do, I'll just remove
this, I don't want it, I'll remove this, okay. Okay, let me read the data set. Now for reading
the data set. Over here, you will be able to see that my data set path is basically
this it is a CSV file. In full schema headed schema, all these things are there. So let
me remove this also. So let me start reading the data set. So by default spark is already
uploaded. So I'll write spark dot spark dot read dot CSV, I hope so it will work and for
the first time, remember, this is my file location. file location. Okay, bye underscore
elevation. And then I will also be using two more option one is header is equal to true
and then I have inferred schema is equal to true. Once I execute this, now you will be
seeing that automatically. The first time when you're executing, it will say that launch,
launch and run so we are going to launch the cluster and run it so I'm just going to click
it failed to create reject request since the total number of nodes would exceed the limit
one, why this is there. Let's see if our clusters we just have one cluster. Okay, there was
some examples that have been taken over here. So let me remove one of them. Okay, let me
just execute this. Okay, I'll go over here. space, let me delete it. Okay. Perfect. Now,
I'll try to read this. Let's see. Again, it says failed to create the cluster reject request
rejected since the total number of nodes would exceed the limit of one and it is not allowing
us to execute more than one file I guess. So because of that, I'm just reloading it.
Let's see now. Now it has got executed see guys before they were two files. So because
of that, it was not allowing me to run I just real I deleted one file and I I reloaded one
file Okay. So now you can see that it is getting the run now. Okay, you can also press Shift
Tab to basically see some hints and all the same like how we do it in Jupyter Notebook.
Now here you will be able to see that my file will be running absolutely fine. And it shows
it shows this df it shows that okay, it is a PI spark dot SQL dot data frame raw data.
Now, let me just execute the other things. Now suppose if I want df dot read, see I'm
just using that tab feature print schema, if I go and see this here, you will be able
to see find out all the values right. So in short, this is basically now running in my
instance of the cluster right, I will be able to upload any huge data set, probably a 50
gb data set also from s3 bucket and not right that I'll try to show you how we can do it
from s3 bucket in the upcoming videos. But what I am going to show you guys in the upcoming
future will try to run all this kind of problem statements through the data bricks so that
you will be able to learn it Okay. Now, let me just go and do one more thing. So this
is my df dot show. Okay, so, this is my entire data set. So probably I will just want to
select some column, I can actually write the DF dot select and here I just want to say
salary dot show I'm just selecting salary dot show here you will be able to see so everything
that you want to do you will be able to do it and remember over here you will be able
to find out around 15 gb and you can definitely perform any kind of things okay. Here also
you have same options like how we have within you know in Jupyter Notebook, every option
is that you will be able to find out all this particular options in Jupyter Notebook also,
right. So, this is basically running in 15.25 gb, two cores, okay in that particular cluster,
you have two cores, then you have spark 3.1 point One Spark 2.12 and you will be able
to see all this particular information. So what I would like to want Guys, please try
to make a specific environment for you, and then try to start it, try to keep everything
ready. And from the upcoming videos, we will try to see how we can execute how we can implement
problem statement how we can implement different algorithms. I've already given you the introduction
of data bricks in the last class. I hope you have made your account and I hope you have
started using it. If you don't know how to make an account, please watch Logitech tutorial
seven, the entire playlist link will be given in the description. Now this is my databricks
community account. Remember, in the community version, we can only create one cluster. I'll
also be showing you in the upgraded versions probably in the future, I will be buying it.
And I will try to show you how you can also create multiple clusters, unlimited clusters.
But for that, you also need to use some clouds like AWS or Azure. Now, first of all what
data set I'm going to use. So this is the entire data set that I'm going to use guys,
this data set is called us tips data set. So that basically means people who are actually
going to the restaurant what tip they have actually given based on the total bill, or
I can also go and solve this particular problem based on all these particular parameters,
what should what probably is the total bill that the person is going to pay? Okay, so
this is the problem statement that I'm going to solve. Now here, you can see this is a
multi linear regression problem statement. Here, you have many, many features, right?
So let's proceed. Now first of all, what I'm going to do, I'm just going to click to the
browse, and I'm going to upload this particular data set. Now in order to upload this particular
data set, I have this particular data set in my path. So probably I'll also be giving
you this particular data set, so don't worry about it. Oh, let me just quickly, just a
second, let me just upload the data set over here. Okay. By Spark, okay, so here, you can
see that this is my data set, which I'm actually uploading tips. So let me open it right. Now
here, you will be able to see that your tips data set will get uploaded, you know, in this
DB Fs directory. So here you will be having something like file stores slash tables. Okay.
Now what you can actually do now, let's go and click on this dvfs. And here you can see
and file stores, probably you can also click on tables. Here you have the steps dot CSV,
I've also uploaded dissolve data sets in my previous videos, probably I was just using
this, okay, but here, I'm just focusing on tips dot CSV. Now what I'm going to do over
here, let's go and do the first step. Remember, the first step in data bricks is that we need
to create the clusters, okay? And create a cluster. Right now, by default in the community
version, data bricks actually helps you to create a cluster, just a one single cluster,
okay. But if you're using the paid version, the upgraded version, it will actually help
you to create multiple clusters if you have the access of AWS cloud. So I'm just going
to click on the cluster, let me create a new cluster. So I'll say this is my linear regression
cluster, okay. And then I'm going to use this runtime 8.2 scalar, this is there. And we're
just going to click the cluster and remaining all things will be almost same in this cluster.
In this instance, you'll be getting 15 GB memory and all the other information here,
you can check it out. You can also be getting two cores, and one I dB. Okay, so which I've
actually already discussed in my previous session, so I'll go and click on cluster.
This will take some time. And remember, guys, if you really want to use any kind of libraries,
just click over here and install those libraries, which they want. Like suppose if you want
to use Seabourn, you want to use kiraz, you want to use TensorFlow. So here you can basically
type this along with the versions and you will be able to install it okay. But right
now, I don't require any libraries under shown to use PI spark that is my main aim. So guys,
click on the cluster over here. And here, you can see that probably after a minute,
this particular cluster is actually created. Okay. Now, again, go to the home, what you
can do, you can create a blank notebook, I've already created one notebook, so that I have
the basic code written. So I'm just going to open this, and let's start this particular
process. Now first of all, I have something called as file location, I know my file location
is basically tips dot CSV, the file type is CSV. And then I'm just using spark dot read
dot CSV file location header is equal to true info, schema is equal to two. And let me just
write df dot show, this will actually help me to check the entire dataset. Okay, so I'm
just going to execute it in front of you. And let's make it line by line I'll try to
write down all the all the codes, it will definitely be helpful for you to understand.
So please make sure that you also type along with me to understand the code much more better.
Okay, so here now I'm going to execute this. Now here, you will be able to see my, my clusters
will start running. Okay. And then you can see waiting to run running the command, probably
we will be able to see it and just zoom out a little bit so that you'll be able to see
properly. And again, guys for the first time, if you're starting this particular cluster,
it will take time. Okay, so spark jobs it is running. And now you will be able to see
my data set. That is my tips data set, which is uploaded in this specific file location.
So this is my entire dataset, total bill, tip, sex, mocha date, time size, perfect.
Now let's go to the next step. What I'm going to do, I'm just going to write df dot print
schema. So I can Oh So, you stab, you know, it will be able to load this entire thing.
So now here you can see that this is my entire features total bill, tip, sex smoker day time.
So here is all your features like double, double sexy string smoker is string, day string
time string integer. Now remember you may be thinking Krish, why I am actually doing
this in databricks to just make you understand how this will basically run in the cluster.
Right now I just have one single cluster guys, that basically means that the maximum ram
in this particular cluster is somewhere around 15 gb. But just understand if you're working
with 100 GB of data, and what happens, this kind of processing will get split in multiple
clusters, right. So in this way, you'll be able to work with big data also in the upcoming
things right. Now this is I think that's right. Now let's go and try to understand over here,
which is my independent feature, my independent feature is my tips feature sex smoker day
time and size. And my dependent features, basically total bills. So based on all these
particular features, I need to create a linear regression algorithm, which will be able to
predict the total bill. So let's go ahead, now over here, I'm just going to write df
dot columns. So if I want to check my columns, this is my columns over here. So I can see
this is my exact columns, this many columns I actually have. Now, one thing about this
particular feature over here, guys, you have columns like sex, smoker, day, time, right?
These all are categorical features, right? And probably, you know, this category of features
needs to be converted into some numerical values, then only my machine learning algorithm
will get will be able to understand it. So let's see how to handle category features.
So here, I'm just going to write a comment. Okay, handling categorical features, right.
Now, I'll try to show you how to handle this kind of category features. Now, one way in
PI Spark, and obviously, we know, in normal SK learn, you know, we try to use one hot
encoding, we try to use ordinal encoding, we try to use different kinds of encodings
in this. And similarly, we can use that same encoding over here also with the help of pi
Spark. So for this particular process, we have something called a string indexer. So
I'm just going to say from pi spark radar, from pi spark.ml dot feature, okay, I'm going
to import something called as string indexer. So, I will be using the string indexer, the
string indexer will actually help us to you know, basically convert our string category
features into some numerical features, numerical features basically is ordinal encoding. Like
suppose if I have gender like male or female, it will be shown as zeros and ones. And over
here you will be seeing I so most of the categories over here are ordinal encoding. Now, you may
be thinking, one hot encoding, what is the process that I'll try to show you in the upcoming
videos with different different machine learning algorithm? The reason why I'm making it because
it is better to learn one thing at a time, right? So we'll I'll try to show all those
kinds of examples also, is now let's proceed and try to see that how we can convert this
category features like sex, smoker day and time, probably time is also category feature,
see over here. So if I see this all features over here, let me do one thing, okay. Let
me just write df dot show. So this is my entire features. Quickly, if I go and see this is
time is also category feature. So quickly, let's go ahead and try to see how we can basically
use this, let me delete this thing also, or let me just write it once again. So I have
actually, you know, imported this library called a string indexer. Now what I'm going
to do over here is that, let me write our indexer object saying as this and I'll write
string indexer. And here, first of all, I really need to provide which all our category
features. Now remember, in this string indexer, if I go and press Shift Tab, probably over
here, here, you will be able to see I have to give input columns. So let me touch here,
I have to give input columns, and I have to give output columns. I also have options of
providing input columns as multiple columns, and the output columns as multiple columns.
So let me try both the thing Okay, so over here, first of all, let me try with input
columns. So here in the input columns, I will provide my first value. Now suppose I want
to really convert the sex column into into my category feature. So here I'll write output
column. Okay. And here, I'll say, sex underscore indexed. Now here what we are actually doing
guys, here, I'm actually giving my sex column and this sex column will be converted into
an ordinal encoding with the help of the string indexer. Okay, now in the next step, what
I will do, I will just write df, okay, probably I'll just use df. Or what I can do, I can,
I can just create another, probably I can create another data frame. So I'll write df
underscore are probably c because I don't want to change the DF and again, run that
particular code. Now, I'll say indexer dot fit, okay, so I can definitely use fit. And
then I can use transform. So here also, it is almost same like that only guys fit underscore
transform. and here also i'm going to use df. Okay. And then if I go and see df.df underscore
r dot show, here, now you'll be able to see that the sex column, one more sex underscore
index column will be created, and it will have the ordinal encoded values in this particular
column. So let's go and see this. So once I execute it, perfect, I think it is running
properly, it will take time. Now here, you can see that I'm having one more column, which
is called a sex underscore index, wherever the female value is that the value is one
wherever the male value is that the value is zero, right? So we have handled this particular
column. And we have basically converted this character feature into the ordinal encoding.
Now, still, we have many features. So what I'm going to do, I'm just going to use this
indexer again, okay. And probably I'm just going to write over here, multiple columns,
I will specify. So first column, I've already changed it. So I'm going to change this into
something else, sex instead of sex that will become smoker. Okay, smoker. But I showed
you guys, instead of writing input columns, now I have to write input columns, right.
So in this multiple columns when I'm giving, so this is smoker, then I have one more feature.
If I see day, day and time, day, and time is more two features. So I'm just going to
right over here, day underscore. So guys, now how I've written smoker day and time,
similarly, I will be writing three more columns over here. So the first column should be because
I'm going to create the ordinal encoding. And I probably create a new column over here.
So this will be my smoker underscore indexed. Okay, I'll close the braces over here. My
second feature will basically be de underscore index, right? Or, and my third feature will
probably be our time underscore index. So here, I'm just going to create three more
features. And then I'm giving index dot fit or df underscore R. Okay, because now I have
my new data frame, and then I'm going to say df underscore dot show. Now once I execute
it guys, I hope should not give us an error, okay, it is saying that invalid parameter
value given for Param output columns could not convert last restore, so I have to make
this as output columns. Okay, so that was the issue. Right? So now you'll be able to
see that it's executing perfectly fine. Now, here you have all the features available six
underscore index smoken underscore index, de underscore index and time underscore index
and all you can see over here this ordinal encodings like 012 right and we have now converted
this all string values into this kind of all category values that are available in this
feature into numerical values. Now, my model will definitely be able to understand Okay,
now we have done this guys, now, let's proceed what is the next step that we basically do
that we are going to discuss now the other steps are pretty much easy because we have
already created this specific data set. Now what we have to do is that there is something
called as vector assembler. Now always remember guys in PI Spark, you know, whenever we have
all this particular feature, we need to group all the independent features together, and
the dependent feature separately, okay, so guys, we'll write from from pi spark.ml dot
feature, I'm going to import something called as vector assembler. Right? So I'm just going
to use this vector assembler, this will actually help us to group independent features together
and the dependent features separately, so let me just go ahead and write vector assembler
and then I'm going to initialize this the first parameter I have to provide is basically
my input columns, here are my input columns, what are the input columns I have? Let me
just see before this, let me quickly do one thing is that let me make a cell okay. Cell
up create a cell let me just removed this and probably just let me write you know, df
underscore r dot columns. Okay, so how many number of columns we have. So I have all my
information with respect to the columns. So my input column over here, the first thing
that I am definitely going to provide is my tip column. Because tip is required tip is
the first independent feature and it is a numerical feature then I have something like
six underscore indexed Okay, so I'm just going to copy this paste it over here. And this
is my another input feature. And remember guys, we really need to follow the order.
So now my third feature is basically smoke index. And before this also I can also specify
size okay. So I will be specifying size, size six index smoker index. Okay, and then probably
I'll also create a index. Okay, they index, comma, I'm just going to use time index. Okay,
so this is our, these are all my independent features. And with respect to this, now remember,
this will be grouped together. And I also have to say that if this is grouped together,
let's create a new feature, and untie and name this entire group. Okay, so here, I'm
just going to say, output column is equal to, and here I'm just going to specify this
are my independent features. So I'm going to name this entire thing as my independent
feature pretty much simple. Now, let me do one more thing, let me create a variable called
as feature assembler, so that we will be able to transform this value. Okay, so feature
assembler is equal to vector assembler, and here I have to provide my input columns and
the output columns pretty much simple, pretty much easy. Now the next step that I'm going
to do is that right output is equal to I'm just going to say dot transform, because I
really need to transfer and this needs to be transformed from my df underscore art,
okay. So, let me just execute it. Now. Now, here, it has got executed here you can see
the entire output, all these things are created, these are my independent features. Now in
the independent and why we need to create this independent features that is the that
is the specification that is given in PI Spark, always remember, we need to create a group
of features and probably a list, all these independent features will be done together.
Now, if I go and see my output dot show, here, now you will be able to see, I will be able
to see one more feature, which has this, or let me just write output dot select, because
probably all the features have been grouped together. And it is very difficult to see
all the features in just one screen, I'm just going to take this independent features and
just click on dot show. Now once I do this, here, you will be able to see all this particular
features are there. Remember, this needs to be shown in the same order. The first feature
is tip, then size six, underscore index, smoker underscore index, de underscore index, time
underscore index. So these are my independent feature. Now I just have one feature. And
over here, you will be able to see that it is just having a list of all the features
like this. And this is the first major step to create. Okay, now let's go to the next
one. Now I know what is my output. Now what I'm going to do is that out of this entire
output, if I go and see my output, output dot show here, you will be able to see all
the features are available right in output dot show. So here we'll be able to see all
the features are available. Now you know, which is the output feature, right? So this
is my dependent feature. And this independent features are my independent feature. So what
I'm going to do now I'm just going to select output, or I'll say this is basically my finalized
data. And I'm just going to pick up two columns, that is output dot select. And inside this,
I'm just going to give my two features, which I'm going to say one is independent features.
Okay, indie band features, I hope that the name is right. Otherwise, I'll just confirm
it once again. So let me click it over here. Independent features, and one is total underscore
bill. Perfect, comma, total underscore bill. Okay. Now if I just go and execute this, now
I'm just picking up to features right from this. Now if I go and find out finalized data
dot show, now I'll be able to see two important features, that is independent features and
total bill. Remember, this is all my independent features. And this is my dependent feature.
This is very much simple till here. If it is done, guys, the next step is basically
I'm just going to copy and paste some code, I'm just going to apply the linear regression.
So first of all, from pi spark.ml dot regression, I'm going to import the linear regression.
And then I'm going to take this entire finalized data and then do a random split of 75 and
25%. Okay, and then in my linear regression, I am just going to provide my independent
features as my feature column. This is two parameters which to be given in linear regression,
one is feature column here I'll be providing independent features. The second one is basically
total bill which is my dependent feature. And now I will just do a fit on train data.
So once I do it, my regressor model will get created. And probably this will take time.
Now here you can see all the information, amazing information you are getting with respect
to train and test. Okay, and remember guys, whatever group you have made this independent
feature, this is in the format of UDT. Okay, you can see the full form of UDP, that is
not a big problem, I thought, okay, now I have my regressor. So what I'm going to do,
I'm just going to say regressor dot coefficient, since this is a multiple linear regression,
so I'm just going to use regular So dot coefficient and these are all my parameters are different
different coefficients because I have around six parameters. So these are all the six different
different coefficients. Always remember in a linear regression, you will be having coefficient
based on the number of features. And you will also be having intersect. So here I'm just
going to intercept. Okay, so this is basically my intercept, that is point 923. Okay, so
here you have both the information, now is the time that we will try to evaluate, evaluate
the test data. So here, I'm just going to say test. And this is basically my predictions,
right? So here, let me write it as something like this. So predictions, okay. prediction.
And what I'm going to do, I'm just going to write pred underscore results. Results is
equal to this one. And this will basically be my results, okay? Or test is not defined
why test is not defined, because there should be test data. I'm actually sorry, okay. But
it's okay, you will be able to get so small, small errors, okay. Now, if I really want
to see my price results, just go and see red dot predictions, they'll be something like
predictions dot show, okay. If you write like this, here, you will be able to get the entire
prediction. Okay. So remember, in this prediction, this is your independent feature, this is
your total bill, this is your actual value. And this is a prediction value, actual value
prediction value, actual value and prediction value here, you can actually compare how good
it is, you know, by just seeing your total bill and the prediction value, pretty much
good, pretty much amazing, you are able to see the data, I'm just going to write my final
comparison. Okay, final comparison. Perfect. I'm very much good at it, you can see it.
Now let's see some of the other information like what information we can basically check
it out. From this, we can we have a lot of things go probably you want to check out the
R square. So what you can write, you can basically write a regression.if, I press tab, this coefficient
intercept, then you have lost, then there's also something called an R squared. If I go
and execute this, this is basically my r squared. Or let me just write it down. I think, prediction
predictions. I don't think so r square is where Let's see whether we'll be able to see
the R squared value or not. In just a second, I'm just checking out the documentation page.
Okay, oh, sorry, I don't have to use regressor over here. So here I will be using prediction
dot results. And let me compute the R square. So this is my r squared. Similarly, you can
also check out prediction results dot mean absolute error. So you have mean absolute
error. You also have prediction underscore result dot mean, squared. So all these three
values, you can definitely check it out. So here is your mean absolute error here is your
mean squared error. So these are my performance metrics that I can definitely have. And whenever
you guys whenever you face any kind of problems, just make sure that you check the documentation
in Apache Spark em lib documentation. Now in this way, you can definitely do this entire
problem statement. Now I'll give you one assignment just try to Google it and try to see how you
can save this particular file probably in a pickle format or probably in a temporary
model pickle file. You know, it's very, very simple, you just have to use the regression
dot save but try to have a look and try to see that how you can save this particular
pickle file. Now this was all about this particular video. I hope you like this now just try to
solve it any other problem statement. Try to do this. In the upcoming videos. I'll also
try to show how you can do one hot encoding and probably will be able to learn that too.
So I hope you liked this particular video. Please do subscribe the channel if you're
not subscribed to either make sure to have a great day. Thank you. Bye bye