Machine Learning : Linear Regression using Pyspark | by Somesh Routray | Towards Data Science

Introduction:
PySpark is the Python API written in python to support Apache Spark. Apache Spark is a distributed framework that can handle Big Data analysis. Spark is written in Scala and can be integrated with Python, Scala, Java, R, SQL languages. Spark is basically a computational engine, that works with huge sets of data by processing them in parallel and batch systems. When you down load spark binaries there will separate folders to support above langauges.
There are basically two major types of algorithms — transformers : Transforms work with the input datasets and modify it to output datasets using a transform().
Estimators are the algorithms that take input datasets and produces a trained output model using fit().
In this section, I will be showing the machine learning implementation using Spark and Python. I will be focusing here basic ML algorithm Linear Regression implemented in the context of Spark. The program has been executed in the standalone server.
First, import the libraries as shown below. And it is the most important to give the path of Spark binaries present in your system. Otherwise, you may face issues in executing codes.
#"F:\DATA\SPARK\practice spark\Real estate.csv"

import findspark
import pyspark
findspark.find()
from pyspark.sql import SparkSession
from pyspark.ml.feature import VectorAssembler
from pyspark.ml.regression import LinearRegression
import os
import sys
os.environ['SPARK_HOME']= r'C:\SPARK\spark-3.0.0-bin-hadoop2.7'

if __name__ == "__main__":
    spark = SparkSession\
        .builder\
        .appName("LinearReg_spark")\
        .getOrCreate()

dataset = spark.read.csv('Real estate.csv',header= True)

dataset.show()

+---+-------------------+------------+--------------------------------------+-------------------------------+-----------+------------+--------------------------+
| No|X1 transaction date|X2 house age|X3 distance to the nearest MRT station|X4 number of convenience stores|X5 latitude|X6 longitude|Y house price of unit area|
+---+-------------------+------------+--------------------------------------+-------------------------------+-----------+------------+--------------------------+
|  1|           2012.917|          32|                              84.87882|                             10|   24.98298|   121.54024|                      37.9|
|  2|           2012.917|        19.5|                              306.5947|                              9|   24.98034|   121.53951|                      42.2|
|  3|           2013.583|        13.3|                              561.9845|                              5|   24.98746|   121.54391|                      47.3|
|  4|           2013.500|        13.3|                              561.9845|                              5|   24.98746|   121.54391|                      54.8|
|  5|           2012.833|           5|                              390.5684|                              5|   24.97937|   121.54245|                      43.1|
|  6|           2012.667|         7.1|                               2175.03|                              3|   24.96305|   121.51254|                      32.1|
|  7|           2012.667|        34.5|                              623.4731|                              7|   24.97933|   121.53642|                      40.3|
|  8|           2013.417|        20.3|                              287.6025|                              6|   24.98042|   121.54228|                      46.7|
|  9|           2013.500|        31.7|                              5512.038|                              1|   24.95095|   121.48458|                      18.8|
| 10|           2013.417|        17.9|                               1783.18|                              3|   24.96731|   121.51486|                      22.1|
| 11|           2013.083|        34.8|                              405.2134|                              1|   24.97349|   121.53372|                      41.4|
| 12|           2013.333|         6.3|                              90.45606|                              9|   24.97433|    121.5431|                      58.1|
| 13|           2012.917|          13|                              492.2313|                              5|   24.96515|   121.53737|                      39.3|
| 14|           2012.667|        20.4|                              2469.645|                              4|   24.96108|   121.51046|                      23.8|
| 15|           2013.500|        13.2|                              1164.838|                              4|   24.99156|   121.53406|                      34.3|
| 16|           2013.583|        35.7|                              579.2083|                              2|    24.9824|   121.54619|                      50.5|
| 17|           2013.250|           0|                              292.9978|                              6|   24.97744|   121.54458|                      70.1|
| 18|           2012.750|        17.7|                              350.8515|                              1|   24.97544|   121.53119|                      37.4|
| 19|           2013.417|        16.9|                              368.1363|                              8|    24.9675|   121.54451|                      42.3|
| 20|           2012.667|         1.5|                              23.38284|                              7|   24.96772|   121.54102|                      47.7|
+---+-------------------+------------+--------------------------------------+-------------------------------+-----------+------------+--------------------------+
only showing top 20 rows


colm = ['No','X1 transaction date']
df = dataset.select([column for column in dataset.columns if column not in colm])

df.printSchema()

root
 |-- X2 house age: string (nullable = true)
 |-- X3 distance to the nearest MRT station: string (nullable = true)
 |-- X4 number of convenience stores: string (nullable = true)
 |-- X5 latitude: string (nullable = true)
 |-- X6 longitude: string (nullable = true)
 |-- Y house price of unit area: string (nullable = true)


from pyspark.sql.functions import col
df = df.select(*(col(c).cast('float').alias(c) for c in df.columns))

df.printSchema()

root
 |-- X2 house age: float (nullable = true)
 |-- X3 distance to the nearest MRT station: float (nullable = true)
 |-- X4 number of convenience stores: float (nullable = true)
 |-- X5 latitude: float (nullable = true)
 |-- X6 longitude: float (nullable = true)
 |-- Y house price of unit area: float (nullable = true)


from pyspark.sql.functions import col, count, isnan, when
df.select([count(when(col(c).isNull(), c)).alias(c) for c in df.columns]).show()

+------------+--------------------------------------+-------------------------------+-----------+------------+--------------------------+
|X2 house age|X3 distance to the nearest MRT station|X4 number of convenience stores|X5 latitude|X6 longitude|Y house price of unit area|
+------------+--------------------------------------+-------------------------------+-----------+------------+--------------------------+
|           0|                                     0|                              0|          0|           0|                         0|
+------------+--------------------------------------+-------------------------------+-----------+------------+--------------------------+


from functools import reduce

oldColumns = df.schema.names
newColumns = ['Age','Distance_2_MRT','Stores','Latitude','Longitude','Price']

df = reduce(lambda df, idx: df.withColumnRenamed(oldColumns[idx], newColumns[idx]),range(len(oldColumns)), df)

df.printSchema()

root
 |-- Age: float (nullable = true)
 |-- Distance_2_MRT: float (nullable = true)
 |-- Stores: float (nullable = true)
 |-- Latitude: float (nullable = true)
 |-- Longitude: float (nullable = true)
 |-- Price: float (nullable = true)


df.show()

+----+--------------+------+--------+---------+-----+
| Age|Distance_2_MRT|Stores|Latitude|Longitude|Price|
+----+--------------+------+--------+---------+-----+
|32.0|      84.87882|  10.0|24.98298|121.54024| 37.9|
|19.5|      306.5947|   9.0|24.98034|121.53951| 42.2|
|13.3|      561.9845|   5.0|24.98746|121.54391| 47.3|
|13.3|      561.9845|   5.0|24.98746|121.54391| 54.8|
| 5.0|      390.5684|   5.0|24.97937|121.54245| 43.1|
| 7.1|       2175.03|   3.0|24.96305|121.51254| 32.1|
|34.5|      623.4731|   7.0|24.97933|121.53642| 40.3|
|20.3|      287.6025|   6.0|24.98042|121.54228| 46.7|
|31.7|      5512.038|   1.0|24.95095|121.48458| 18.8|
|17.9|       1783.18|   3.0|24.96731|121.51486| 22.1|
|34.8|      405.2134|   1.0|24.97349|121.53372| 41.4|
| 6.3|      90.45606|   9.0|24.97433| 121.5431| 58.1|
|13.0|      492.2313|   5.0|24.96515|121.53737| 39.3|
|20.4|      2469.645|   4.0|24.96108|121.51046| 23.8|
|13.2|      1164.838|   4.0|24.99156|121.53406| 34.3|
|35.7|      579.2083|   2.0| 24.9824|121.54619| 50.5|
| 0.0|      292.9978|   6.0|24.97744|121.54458| 70.1|
|17.7|      350.8515|   1.0|24.97544|121.53119| 37.4|
|16.9|      368.1363|   8.0| 24.9675|121.54451| 42.3|
| 1.5|      23.38284|   7.0|24.96772|121.54102| 47.7|
+----+--------------+------+--------+---------+-----+
only showing top 20 rows


features = df.drop('Price')

from pyspark.ml.feature import VectorAssembler
#let's assemble our features together using vectorAssembler
assembler = VectorAssembler(
    inputCols=features.columns,
    outputCol="features")

output = assembler.transform(df).select('features','Price')

train,test = output.randomSplit([0.75, 0.25])

train.show()

+--------------------+-----+
|            features|Price|
+--------------------+-----+
|[0.0,185.42959594...| 37.9|
|[0.0,185.42959594...| 45.5|
|[0.0,185.42959594...| 52.2|
|[0.0,185.42959594...| 55.2|
|[0.0,208.39050292...| 44.0|
|[0.0,208.39050292...| 45.7|
|[0.0,274.01440429...| 43.5|
|[0.0,274.01440429...| 45.4|
|[0.0,274.01440429...| 52.2|
|[0.0,292.99780273...| 63.3|
|[0.0,292.99780273...| 69.7|
|[0.0,292.99780273...| 70.1|
|[0.0,292.99780273...| 73.6|
|[0.0,338.96789550...| 44.9|
|[0.0,338.96789550...| 50.8|
|[1.0,193.58450317...| 50.7|
|[1.10000002384185...| 45.1|
|[1.10000002384185...| 48.6|
|[1.10000002384185...| 49.0|
|[1.10000002384185...| 54.4|
+--------------------+-----+
only showing top 20 rows


test.show()

+--------------------+-----+
|            features|Price|
+--------------------+-----+
|[0.0,185.42959594...| 55.3|
|[0.0,292.99780273...| 71.0|
|[2.09999990463256...| 45.5|
|[3.70000004768371...| 41.6|
|[4.09999990463256...| 31.3|
|[5.09999990463256...| 28.9|
|[5.09999990463256...| 35.6|
|[6.19999980926513...| 31.3|
|[6.30000019073486...| 58.1|
|[6.40000009536743...| 59.5|
|[6.59999990463256...| 58.1|
|[6.80000019073486...| 54.4|
|[7.59999990463256...| 27.7|
|[8.0,132.54690551...| 47.3|
|[8.0,2216.6120605...| 23.9|
|[8.10000038146972...| 51.6|
|[8.5,104.81009674...| 56.8|
|[9.0,1402.0159912...| 38.5|
|[10.0,942.4663696...| 43.5|
|[10.1000003814697...| 47.9|
+--------------------+-----+
only showing top 20 rows


from pyspark.ml.regression import LinearRegression
lin_reg = LinearRegression(featuresCol = 'features', labelCol='Price')
linear_model = lin_reg.fit(train)

print("Coefficients: " + str(linear_model.coefficients))
print("\nIntercept: " + str(linear_model.intercept))

Coefficients: [-0.2845380180805475,-0.004727311005402087,1.187968326885585,201.55230488460887,-43.50846789357342]

Intercept: 298.6774040798928

trainSummary = linear_model.summary
print("RMSE: %f" % trainSummary.rootMeanSquaredError)
print("\nr2: %f" % trainSummary.r2)

RMSE: 9.110080

r2: 0.554706

from  pyspark.sql.functions import abs
predictions = linear_model.transform(test)
x =((predictions['Price']-predictions['prediction'])/predictions['Price'])*100
predictions = predictions.withColumn('Accuracy',abs(x))
predictions.select("prediction","Price","Accuracy","features").show()

+------------------+-----+-------------------+--------------------+
|        prediction|Price|           Accuracy|            features|
+------------------+-----+-------------------+--------------------+
| 43.12547834643925| 55.3|  22.01540878586896|[0.0,185.42959594...|
| 50.46230673101314| 71.0| 28.926328547868813|[0.0,292.99780273...|
| 47.46100355578261| 45.5|  4.309897924796947|[2.09999990463256...|
|  46.8530780492884| 41.6|  12.62759559579116|[3.70000004768371...|
|35.434011977095054| 31.3| 13.207708756553762|[4.09999990463256...|
|39.619817126403234| 28.9|  37.09279463450084|[5.09999990463256...|
| 39.33273298109731| 35.6| 10.485209738673646|[5.09999990463256...|
|29.351057585089677| 31.3|  6.226650797049346|[6.19999980926513...|
| 52.62887519936618| 58.1|  9.416735659970566|[6.30000019073486...|
| 52.60042142469416| 59.5| 11.595930378665274|[6.40000009536743...|
| 52.54351387534922| 58.1|  9.563657047679346|[6.59999990463256...|
| 54.38035537626644| 54.4|0.03611424459818044|[6.80000019073486...|
| 34.33264716981199| 27.7| 23.944571206461944|[7.59999990463256...|
| 53.83264404188236| 47.3| 13.811088605057204|[8.0,132.54690551...|
|34.562892118922775| 23.9|  44.61461368445082|[8.0,2216.6120605...|
| 45.87250193662936| 51.6| 11.099799819498518|[8.10000038146972...|
| 45.75868683793948| 56.8| 19.438930541247075|[8.5,104.81009674...|
|  37.9322164579217| 38.5|   1.47476244695663|[9.0,1402.0159912...|
| 38.51099156627248| 43.5| 11.468984905120735|[10.0,942.4663696...|
| 48.37043980769164| 47.9| 0.9821258180097748|[10.1000003814697...|
+------------------+-----+-------------------+--------------------+
only showing top 20 rows


from pyspark.ml.evaluation import RegressionEvaluator
pred_evaluator = RegressionEvaluator(predictionCol="prediction", \
                 labelCol="Price",metricName="r2")
print("R Squared (R2) on test data = %g" % pred_evaluator.evaluate(predictions))

R Squared (R2) on test data = 0.610204

def adj_r2(x):
    r2 = trainSummary.r2
    n = df.count()
    p = len(df.columns)
    adjusted_r2 = 1-(1-r2)*(n-1)/(n-p-1)
    return adjusted_r2
adj_r2(train)

0.548141210028837
adj_r2(test)

0.548141210028837
lin_reg = LinearRegression(featuresCol = 'features', labelCol='Price',maxIter=50, regParam=0.12, elasticNetParam=0.2)
linear_model = lin_reg.fit(train)

linear_model.summary.rootMeanSquaredError

9.110906766525105
features_rdd = features.rdd.map(lambda row: row[0:])

features_rdd.collect()

[(32.0, 84.87882232666016, 10.0, 24.982980728149414, 121.54023742675781),
 (19.5, 306.5946960449219, 9.0, 24.98033905029297, 121.53951263427734),
 (13.300000190734863,
  561.9844970703125,
  5.0,
  24.987459182739258,
  121.54390716552734),
 (13.300000190734863,
  561.9844970703125,
  5.0,
  24.987459182739258,
  121.54390716552734),
 (5.0, 390.5683898925781, 5.0, 24.9793701171875, 121.54244995117188),
 (7.099999904632568,
  2175.030029296875,
  3.0,
  24.963050842285156,
  121.51254272460938),
 (34.5, 623.4730834960938, 7.0, 24.97933006286621, 121.53642272949219),
 (20.299999237060547,
  287.6025085449219,
  6.0,
  24.980419158935547,
  121.54228210449219),
 (31.700000762939453,
  5512.0380859375,
  1.0,
  24.950950622558594,
  121.48458099365234),
 (17.899999618530273,
  1783.1800537109375,
  3.0,
  24.967309951782227,
  121.51486206054688),
 (34.79999923706055,
  405.2134094238281,
  1.0,
  24.97348976135254,
  121.53372192382812),
 (6.300000190734863,
  90.45606231689453,
  9.0,
  24.97433090209961,
  121.54309844970703),
 (13.0, 492.2312927246094, 5.0, 24.965150833129883, 121.53736877441406),
 (20.399999618530273,
  2469.64501953125,
  4.0,
  24.96108055114746,
  121.51045989990234),
 (13.199999809265137,
  1164.8380126953125,
  4.0,
  24.991559982299805,
  121.5340576171875),
 (35.70000076293945,
  579.2083129882812,
  2.0,
  24.98240089416504,
  121.54618835449219),
 (0.0, 292.997802734375, 6.0, 24.977439880371094, 121.5445785522461),
 (17.700000762939453,
  350.85150146484375,
  1.0,
  24.975439071655273,
  121.53118896484375),
 (16.899999618530273,
  368.13629150390625,
  8.0,
  24.967500686645508,
  121.54450988769531),
 (1.5, 23.38283920288086, 7.0, 24.96772003173828, 121.54102325439453),
 (4.5, 2275.876953125, 3.0, 24.9631404876709, 121.51151275634766),
 (10.5, 279.172607421875, 7.0, 24.97528076171875, 121.54541015625),
 (14.699999809265137,
  1360.1390380859375,
  1.0,
  24.95203971862793,
  121.54842376708984),
 (10.100000381469727,
  279.172607421875,
  7.0,
  24.97528076171875,
  121.54541015625),
 (39.599998474121094,
  480.69769287109375,
  4.0,
  24.973529815673828,
  121.53884887695312),
 (29.299999237060547,
  1487.8680419921875,
  2.0,
  24.975419998168945,
  121.51725769042969),
 (3.0999999046325684,
  383.8623962402344,
  5.0,
  24.980850219726562,
  121.54390716552734),
 (10.399999618530273,
  276.4490051269531,
  5.0,
  24.955930709838867,
  121.53913116455078),
 (19.200000762939453,
  557.47802734375,
  4.0,
  24.97418975830078,
  121.53797149658203),
 (7.099999904632568,
  451.2438049316406,
  5.0,
  24.975629806518555,
  121.54694366455078),
 (25.899999618530273,
  4519.68994140625,
  0.0,
  24.948259353637695,
  121.4958724975586),
 (29.600000381469727,
  769.4033813476562,
  7.0,
  24.98280906677246,
  121.5340805053711),
 (37.900001525878906,
  488.57269287109375,
  1.0,
  24.97348976135254,
  121.53450775146484),
 (16.5, 323.6549987792969, 6.0, 24.978410720825195, 121.54280853271484),
 (15.399999618530273,
  205.36700439453125,
  7.0,
  24.984189987182617,
  121.54242706298828),
 (13.899999618530273,
  4079.41796875,
  0.0,
  25.014589309692383,
  121.51815795898438),
 (14.699999809265137,
  1935.009033203125,
  2.0,
  24.96385955810547,
  121.51457977294922),
 (12.0, 1360.1390380859375, 1.0, 24.95203971862793, 121.54842376708984),
 (3.0999999046325684,
  577.9614868164062,
  6.0,
  24.972009658813477,
  121.5472183227539),
 (16.200000762939453,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (13.600000381469727,
  4082.014892578125,
  0.0,
  24.94154930114746,
  121.5038070678711),
 (16.799999237060547,
  4066.5869140625,
  0.0,
  24.942970275878906,
  121.50341796875),
 (36.099998474121094,
  519.461669921875,
  5.0,
  24.963050842285156,
  121.53758239746094),
 (34.400001525878906,
  512.787109375,
  6.0,
  24.98748016357422,
  121.54300689697266),
 (2.700000047683716,
  533.4761962890625,
  4.0,
  24.974449157714844,
  121.54765319824219),
 (36.599998474121094,
  488.8193054199219,
  8.0,
  24.970149993896484,
  121.54493713378906),
 (21.700000762939453,
  463.9623107910156,
  9.0,
  24.970300674438477,
  121.5445785522461),
 (35.900001525878906,
  640.7390747070312,
  3.0,
  24.975629806518555,
  121.53714752197266),
 (24.200000762939453,
  4605.7490234375,
  0.0,
  24.946840286254883,
  121.49578094482422),
 (29.399999618530273,
  4510.35888671875,
  1.0,
  24.949249267578125,
  121.49542236328125),
 (21.700000762939453,
  512.5487060546875,
  4.0,
  24.974000930786133,
  121.53842163085938),
 (31.299999237060547,
  1758.406005859375,
  1.0,
  24.95401954650879,
  121.55281829833984),
 (32.099998474121094,
  1438.5789794921875,
  3.0,
  24.97418975830078,
  121.51750183105469),
 (13.300000190734863,
  492.2312927246094,
  5.0,
  24.965150833129883,
  121.53736877441406),
 (16.100000381469727,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (31.700000762939453,
  1160.6319580078125,
  0.0,
  24.94968032836914,
  121.53009033203125),
 (33.599998474121094,
  371.24951171875,
  8.0,
  24.9725399017334,
  121.54058837890625),
 (3.5, 56.47425079345703, 7.0, 24.957439422607422, 121.537109375),
 (30.299999237060547,
  4510.35888671875,
  1.0,
  24.949249267578125,
  121.49542236328125),
 (13.300000190734863,
  336.0531921386719,
  5.0,
  24.957759857177734,
  121.53437805175781),
 (11.0, 1931.20703125, 2.0, 24.96364974975586, 121.51470947265625),
 (5.300000190734863,
  259.66070556640625,
  6.0,
  24.975849151611328,
  121.54515838623047),
 (17.200000762939453,
  2175.876953125,
  3.0,
  24.963029861450195,
  121.51254272460938),
 (2.5999999046325684,
  533.4761962890625,
  4.0,
  24.974449157714844,
  121.54765319824219),
 (17.5, 995.75537109375, 0.0, 24.963050842285156, 121.54914855957031),
 (40.099998474121094,
  123.7428970336914,
  8.0,
  24.976350784301758,
  121.54328918457031),
 (1.0, 193.58450317382812, 6.0, 24.965709686279297, 121.5408935546875),
 (8.5, 104.81009674072266, 5.0, 24.966739654541016, 121.5406723022461),
 (30.399999618530273,
  464.2229919433594,
  6.0,
  24.979639053344727,
  121.53804779052734),
 (12.5, 561.9844970703125, 5.0, 24.987459182739258, 121.54390716552734),
 (6.599999904632568,
  90.45606231689453,
  9.0,
  24.97433090209961,
  121.54309844970703),
 (35.5, 640.7390747070312, 3.0, 24.975629806518555, 121.53714752197266),
 (32.5, 424.544189453125, 8.0, 24.97587013244629, 121.53913116455078),
 (13.800000190734863,
  4082.014892578125,
  0.0,
  24.94154930114746,
  121.5038070678711),
 (6.800000190734863,
  379.5574951171875,
  10.0,
  24.983430862426758,
  121.5376205444336),
 (12.300000190734863,
  1360.1390380859375,
  1.0,
  24.95203971862793,
  121.54842376708984),
 (35.900001525878906,
  616.400390625,
  3.0,
  24.977230072021484,
  121.53766632080078),
 (20.5, 2185.1279296875, 3.0, 24.963220596313477, 121.51236724853516),
 (38.20000076293945,
  552.4370727539062,
  2.0,
  24.975980758666992,
  121.5338134765625),
 (18.0, 1414.8370361328125, 1.0, 24.951820373535156, 121.54886627197266),
 (11.800000190734863,
  533.4761962890625,
  4.0,
  24.974449157714844,
  121.54765319824219),
 (30.799999237060547,
  377.79559326171875,
  6.0,
  24.964269638061523,
  121.53964233398438),
 (13.199999809265137,
  150.9346923828125,
  7.0,
  24.96725082397461,
  121.54251861572266),
 (25.299999237060547,
  2707.39208984375,
  3.0,
  24.960559844970703,
  121.50830841064453),
 (15.100000381469727,
  383.2804870605469,
  7.0,
  24.967350006103516,
  121.54463958740234),
 (0.0, 338.9678955078125, 9.0, 24.968530654907227, 121.54412841796875),
 (1.7999999523162842,
  1455.7979736328125,
  1.0,
  24.951200485229492,
  121.54900360107422),
 (16.899999618530273,
  4066.5869140625,
  0.0,
  24.942970275878906,
  121.50341796875),
 (8.899999618530273,
  1406.4300537109375,
  0.0,
  24.985729217529297,
  121.52758026123047),
 (23.0, 3947.945068359375, 0.0, 24.947830200195312, 121.50243377685547),
 (0.0, 274.014404296875, 1.0, 24.97480010986328, 121.53058624267578),
 (9.100000381469727,
  1402.0159912109375,
  0.0,
  24.985689163208008,
  121.52760314941406),
 (20.600000381469727,
  2469.64501953125,
  4.0,
  24.96108055114746,
  121.51045989990234),
 (31.899999618530273,
  1146.3289794921875,
  0.0,
  24.949199676513672,
  121.53076171875),
 (40.900001525878906,
  167.59890747070312,
  5.0,
  24.966299057006836,
  121.5402603149414),
 (8.0, 104.81009674072266, 5.0, 24.966739654541016, 121.5406723022461),
 (6.400000095367432,
  90.45606231689453,
  9.0,
  24.97433090209961,
  121.54309844970703),
 (28.399999618530273,
  617.4423828125,
  3.0,
  24.977460861206055,
  121.53298950195312),
 (16.399999618530273,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (6.400000095367432,
  90.45606231689453,
  9.0,
  24.97433090209961,
  121.54309844970703),
 (17.5, 964.7495727539062, 4.0, 24.988719940185547, 121.53411102294922),
 (12.699999809265137,
  170.12890625,
  1.0,
  24.973709106445312,
  121.52983856201172),
 (1.100000023841858,
  193.58450317382812,
  6.0,
  24.965709686279297,
  121.5408935546875),
 (0.0, 208.3905029296875, 6.0, 24.956180572509766, 121.53843688964844),
 (32.70000076293945,
  392.4458923339844,
  6.0,
  24.963979721069336,
  121.5425033569336),
 (0.0, 292.997802734375, 6.0, 24.977439880371094, 121.5445785522461),
 (17.200000762939453,
  189.51809692382812,
  8.0,
  24.977069854736328,
  121.54308319091797),
 (12.199999809265137,
  1360.1390380859375,
  1.0,
  24.95203971862793,
  121.54842376708984),
 (31.399999618530273,
  592.5006103515625,
  2.0,
  24.97260093688965,
  121.53560638427734),
 (4.0, 2147.3759765625, 3.0, 24.962989807128906, 121.5128402709961),
 (8.100000381469727,
  104.81009674072266,
  5.0,
  24.966739654541016,
  121.5406723022461),
 (33.29999923706055,
  196.61720275878906,
  7.0,
  24.97701072692871,
  121.542236328125),
 (9.899999618530273,
  2102.427001953125,
  3.0,
  24.960439682006836,
  121.51461791992188),
 (14.800000190734863,
  393.2605895996094,
  6.0,
  24.961719512939453,
  121.53811645507812),
 (30.600000381469727,
  143.8383026123047,
  8.0,
  24.981550216674805,
  121.54141998291016),
 (20.600000381469727,
  737.9160766601562,
  2.0,
  24.980920791625977,
  121.54739379882812),
 (30.899999618530273,
  6396.283203125,
  1.0,
  24.943750381469727,
  121.47882843017578),
 (13.600000381469727,
  4197.34912109375,
  0.0,
  24.93885040283203,
  121.50382995605469),
 (25.299999237060547,
  1583.7220458984375,
  3.0,
  24.96622085571289,
  121.51708984375),
 (16.600000381469727,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (13.300000190734863,
  492.2312927246094,
  5.0,
  24.965150833129883,
  121.53736877441406),
 (13.600000381469727,
  492.2312927246094,
  5.0,
  24.965150833129883,
  121.53736877441406),
 (31.5, 414.9476013183594, 4.0, 24.981990814208984, 121.54463958740234),
 (0.0, 185.42959594726562, 0.0, 24.971099853515625, 121.53170013427734),
 (9.899999618530273,
  279.172607421875,
  7.0,
  24.97528076171875,
  121.54541015625),
 (1.100000023841858,
  193.58450317382812,
  6.0,
  24.965709686279297,
  121.5408935546875),
 (38.599998474121094,
  804.689697265625,
  4.0,
  24.97838020324707,
  121.5347671508789),
 (3.799999952316284,
  383.8623962402344,
  5.0,
  24.980850219726562,
  121.54390716552734),
 (41.29999923706055,
  124.99120330810547,
  6.0,
  24.966739654541016,
  121.54039001464844),
 (38.5, 216.83290100097656, 7.0, 24.980859756469727, 121.54161834716797),
 (29.600000381469727,
  535.5269775390625,
  8.0,
  24.980920791625977,
  121.53652954101562),
 (4.0, 2147.3759765625, 3.0, 24.962989807128906, 121.5128402709961),
 (26.600000381469727,
  482.7580871582031,
  5.0,
  24.97433090209961,
  121.53862762451172),
 (18.0, 373.3937072753906, 8.0, 24.986600875854492, 121.54081726074219),
 (33.400001525878906,
  186.96859741210938,
  6.0,
  24.966039657592773,
  121.54210662841797),
 (18.899999618530273,
  1009.2349853515625,
  0.0,
  24.96356964111328,
  121.54950714111328),
 (11.399999618530273,
  390.5683898925781,
  5.0,
  24.9793701171875,
  121.54244995117188),
 (13.600000381469727,
  319.07080078125,
  6.0,
  24.964950561523438,
  121.54277038574219),
 (10.0, 942.4663696289062, 0.0, 24.978429794311523, 121.52406311035156),
 (12.899999618530273,
  492.2312927246094,
  5.0,
  24.965150833129883,
  121.53736877441406),
 (16.200000762939453,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (5.099999904632568,
  1559.8270263671875,
  3.0,
  24.972129821777344,
  121.51627349853516),
 (19.799999237060547,
  640.6071166992188,
  5.0,
  24.970169067382812,
  121.54647064208984),
 (13.600000381469727,
  492.2312927246094,
  5.0,
  24.965150833129883,
  121.53736877441406),
 (11.899999618530273,
  1360.1390380859375,
  1.0,
  24.95203971862793,
  121.54842376708984),
 (2.0999999046325684,
  451.2438049316406,
  5.0,
  24.975629806518555,
  121.54694366455078),
 (0.0, 185.42959594726562, 0.0, 24.971099853515625, 121.53170013427734),
 (3.200000047683716,
  489.8821105957031,
  8.0,
  24.970169067382812,
  121.54493713378906),
 (16.399999618530273,
  3780.590087890625,
  0.0,
  24.93292999267578,
  121.51203155517578),
 (34.900001525878906,
  179.45379638671875,
  8.0,
  24.97348976135254,
  121.54244995117188),
 (35.79999923706055,
  170.73109436035156,
  7.0,
  24.96718978881836,
  121.54268646240234),
 (4.900000095367432,
  387.7720947265625,
  9.0,
  24.98118019104004,
  121.53787994384766),
 (12.0, 1360.1390380859375, 1.0, 24.95203971862793, 121.54842376708984),
 (6.5, 376.1708984375, 6.0, 24.954179763793945, 121.5371322631836),
 (16.899999618530273,
  4066.5869140625,
  0.0,
  24.942970275878906,
  121.50341796875),
 (13.800000190734863,
  4082.014892578125,
  0.0,
  24.94154930114746,
  121.5038070678711),
 (30.700000762939453,
  1264.72998046875,
  0.0,
  24.948829650878906,
  121.529541015625),
 (16.100000381469727,
  815.931396484375,
  4.0,
  24.97886085510254,
  121.53463745117188),
 (11.600000381469727,
  390.5683898925781,
  5.0,
  24.9793701171875,
  121.54244995117188),
 (15.5, 815.931396484375, 4.0, 24.97886085510254, 121.53463745117188),
 (3.5, 49.661048889160156, 8.0, 24.95836067199707, 121.53755950927734),
 (19.200000762939453,
  616.400390625,
  3.0,
  24.977230072021484,
  121.53766632080078),
 (16.0, 4066.5869140625, 0.0, 24.942970275878906, 121.50341796875),
 (8.5, 104.81009674072266, 5.0, 24.966739654541016, 121.5406723022461),
 (0.0, 185.42959594726562, 0.0, 24.971099853515625, 121.53170013427734),
 (13.699999809265137,
  1236.56396484375,
  1.0,
  24.976940155029297,
  121.55390930175781),
 (0.0, 292.997802734375, 6.0, 24.977439880371094, 121.5445785522461),
 (28.200000762939453,
  330.08538818359375,
  8.0,
  24.974079132080078,
  121.54010772705078),
 (27.600000381469727,
  515.1121826171875,
  5.0,
  24.962989807128906,
  121.54319763183594),
 (8.399999618530273,
  1962.6280517578125,
  1.0,
  24.954679489135742,
  121.5548095703125),
 (24.0, 4527.68701171875, 0.0, 24.947410583496094, 121.49627685546875),
 (3.5999999046325684,
  383.8623962402344,
  5.0,
  24.980850219726562,
  121.54390716552734),
 (6.599999904632568,
  90.45606231689453,
  9.0,
  24.97433090209961,
  121.54309844970703),
 (41.29999923706055,
  401.8807067871094,
  4.0,
  24.983259201049805,
  121.54460144042969),
 (4.300000190734863,
  432.03851318359375,
  7.0,
  24.980499267578125,
  121.53778076171875),
 (30.200000762939453,
  472.17449951171875,
  3.0,
  24.970050811767578,
  121.53758239746094),
 (13.899999618530273,
  4573.77880859375,
  0.0,
  24.94866943359375,
  121.49507141113281),
 (33.0, 181.07659912109375, 9.0, 24.976970672607422, 121.54261779785156),
 (13.100000381469727,
  1144.43603515625,
  4.0,
  24.99176025390625,
  121.53456115722656),
 (14.0, 438.8512878417969, 1.0, 24.974929809570312, 121.52729797363281),
 (26.899999618530273,
  4449.27001953125,
  0.0,
  24.9489803314209,
  121.49620819091797),
 (11.600000381469727,
  201.89390563964844,
  8.0,
  24.98488998413086,
  121.54120635986328),
 (13.5, 2147.3759765625, 3.0, 24.962989807128906, 121.5128402709961),
 (17.0, 4082.014892578125, 0.0, 24.94154930114746, 121.5038070678711),
 (14.100000381469727,
  2615.465087890625,
  0.0,
  24.9549503326416,
  121.56173706054688),
 (31.399999618530273,
  1447.2860107421875,
  3.0,
  24.972850799560547,
  121.51730346679688),
 (20.899999618530273,
  2185.1279296875,
  3.0,
  24.963220596313477,
  121.51236724853516),
 (8.899999618530273,
  3078.176025390625,
  0.0,
  24.954639434814453,
  121.56626892089844),
 (34.79999923706055,
  190.03919982910156,
  8.0,
  24.977069854736328,
  121.54312133789062),
 (16.299999237060547,
  4066.5869140625,
  0.0,
  24.942970275878906,
  121.50341796875),
 (35.29999923706055,
  616.573486328125,
  8.0,
  24.979450225830078,
  121.53642272949219),
 (13.199999809265137,
  750.0703735351562,
  2.0,
  24.973709106445312,
  121.54950714111328),
 (43.79999923706055,
  57.58945083618164,
  7.0,
  24.967500686645508,
  121.54068756103516),
 (9.699999809265137,
  421.47900390625,
  5.0,
  24.982460021972656,
  121.54476928710938),
 (15.199999809265137,
  3771.89501953125,
  0.0,
  24.933629989624023,
  121.51158142089844),
 (15.199999809265137,
  461.1015930175781,
  5.0,
  24.95425033569336,
  121.53990173339844),
 (22.799999237060547,
  707.9066772460938,
  2.0,
  24.981000900268555,
  121.54712677001953),
 (34.400001525878906,
  126.72859954833984,
  8.0,
  24.968809127807617,
  121.5408935546875),
 (34.0, 157.60519409179688, 7.0, 24.966279983520508, 121.54196166992188),
 (18.200000762939453,
  451.64190673828125,
  8.0,
  24.969449996948242,
  121.5448989868164),
 (17.399999618530273,
  995.75537109375,
  0.0,
  24.963050842285156,
  121.54914855957031),
 (13.100000381469727,
  561.9844970703125,
  5.0,
  24.987459182739258,
  121.54390716552734),
 (38.29999923706055,
  642.698486328125,
  3.0,
  24.975589752197266,
  121.5371322631836),
 (15.600000381469727,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (18.0, 1414.8370361328125, 1.0, 24.951820373535156, 121.54886627197266),
 (12.800000190734863,
  1449.7220458984375,
  3.0,
  24.972890853881836,
  121.51728057861328),
 (22.200000762939453,
  379.5574951171875,
  10.0,
  24.983430862426758,
  121.5376205444336),
 (38.5, 665.0635986328125, 3.0, 24.97503089904785, 121.53691864013672),
 (11.5, 1360.1390380859375, 1.0, 24.95203971862793, 121.54842376708984),
 (34.79999923706055,
  175.62939453125,
  8.0,
  24.97347068786621,
  121.54270935058594),
 (5.199999809265137,
  390.5683898925781,
  5.0,
  24.9793701171875,
  121.54244995117188),
 (0.0, 274.014404296875, 1.0, 24.97480010986328, 121.53058624267578),
 (17.600000381469727,
  1805.6650390625,
  2.0,
  24.986719131469727,
  121.52091217041016),
 (6.199999809265137,
  90.45606231689453,
  9.0,
  24.97433090209961,
  121.54309844970703),
 (18.100000381469727,
  1783.1800537109375,
  3.0,
  24.967309951782227,
  121.51486206054688),
 (19.200000762939453,
  383.712890625,
  8.0,
  24.972000122070312,
  121.54476928710938),
 (37.79999923706055,
  590.92919921875,
  1.0,
  24.97153091430664,
  121.53559112548828),
 (28.0, 372.62420654296875, 6.0, 24.97838020324707, 121.54119110107422),
 (13.600000381469727,
  492.2312927246094,
  5.0,
  24.965150833129883,
  121.53736877441406),
 (29.299999237060547,
  529.777099609375,
  8.0,
  24.981019973754883,
  121.53655242919922),
 (37.20000076293945,
  186.51010131835938,
  9.0,
  24.97702980041504,
  121.54264831542969),
 (9.0, 1402.0159912109375, 0.0, 24.985689163208008, 121.52760314941406),
 (30.600000381469727,
  431.11138916015625,
  10.0,
  24.981229782104492,
  121.53742980957031),
 (9.100000381469727,
  1402.0159912109375,
  0.0,
  24.985689163208008,
  121.52760314941406),
 (34.5, 324.94189453125, 6.0, 24.978139877319336, 121.54170227050781),
 (1.100000023841858,
  193.58450317382812,
  6.0,
  24.965709686279297,
  121.5408935546875),
 (16.5, 4082.014892578125, 0.0, 24.94154930114746, 121.5038070678711),
 (32.400001525878906,
  265.0609130859375,
  8.0,
  24.9805908203125,
  121.53986358642578),
 (11.899999618530273,
  3171.3291015625,
  0.0,
  25.001150131225586,
  121.51776123046875),
 (31.0, 1156.4119873046875, 0.0, 24.94890022277832, 121.53095245361328),
 (4.0, 2147.3759765625, 3.0, 24.962989807128906, 121.5128402709961),
 (16.200000762939453,
  4074.736083984375,
  0.0,
  24.942350387573242,
  121.50357055664062),
 (27.100000381469727,
  4412.76513671875,
  1.0,
  24.950319290161133,
  121.4958724975586),
 (39.70000076293945,
  333.3678894042969,
  9.0,
  24.980159759521484,
  121.53932189941406),
 (8.0, 2216.612060546875, 4.0, 24.96006965637207, 121.51361083984375),
 (12.899999618530273,
  250.63099670410156,
  7.0,
  24.966060638427734,
  121.54296875),
 (3.5999999046325684,
  373.8388977050781,
  10.0,
  24.983219146728516,
  121.53765106201172),
 (13.0, 732.852783203125, 0.0, 24.976680755615234, 121.52517700195312),
 (12.800000190734863,
  732.852783203125,
  0.0,
  24.976680755615234,
  121.52517700195312),
 (18.100000381469727,
  837.7233276367188,
  0.0,
  24.963340759277344,
  121.54766845703125),
 (11.0, 1712.6319580078125, 2.0, 24.964120864868164, 121.5167007446289),
 (13.699999809265137,
  250.63099670410156,
  7.0,
  24.966060638427734,
  121.54296875),
 (2.0, 2077.389892578125, 3.0, 24.96356964111328, 121.51329040527344),
 (32.79999923706055,
  204.17050170898438,
  8.0,
  24.98236083984375,
  121.53923034667969),
 (4.800000190734863,
  1559.8270263671875,
  3.0,
  24.972129821777344,
  121.51627349853516),
 (7.5, 639.6198120117188, 5.0, 24.972579956054688, 121.54814147949219),
 (16.399999618530273,
  389.8218994140625,
  6.0,
  24.964120864868164,
  121.54273223876953),
 (21.700000762939453,
  1055.0670166015625,
  0.0,
  24.96211051940918,
  121.54927825927734),
 (19.0, 1009.2349853515625, 0.0, 24.96356964111328, 121.54950714111328),
 (18.0, 6306.15283203125, 1.0, 24.957429885864258, 121.47515869140625),
 (39.20000076293945,
  424.71319580078125,
  7.0,
  24.97429084777832,
  121.53916931152344),
 (31.700000762939453,
  1159.4539794921875,
  0.0,
  24.949600219726562,
  121.53018188476562),
 (5.900000095367432,
  90.45606231689453,
  9.0,
  24.97433090209961,
  121.54309844970703),
 (30.399999618530273,
  1735.594970703125,
  2.0,
  24.96463966369629,
  121.51622772216797),
 (1.100000023841858,
  329.9747009277344,
  5.0,
  24.982540130615234,
  121.54395294189453),
 (31.5, 5512.0380859375, 1.0, 24.950950622558594, 121.48458099365234),
 (14.600000381469727,
  339.2289123535156,
  1.0,
  24.975189208984375,
  121.53150939941406),
 (17.299999237060547,
  444.1333923339844,
  1.0,
  24.97500991821289,
  121.52729797363281),
 (0.0, 292.997802734375, 6.0, 24.977439880371094, 121.5445785522461),
 (17.700000762939453,
  837.7233276367188,
  0.0,
  24.963340759277344,
  121.54766845703125),
 (17.0, 1485.0970458984375, 4.0, 24.97072982788086, 121.51699829101562),
 (16.200000762939453,
  2288.010986328125,
  3.0,
  24.958850860595703,
  121.51358795166016),
 (15.899999618530273,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (3.9000000953674316,
  2147.3759765625,
  3.0,
  24.962989807128906,
  121.5128402709961),
 (32.599998474121094,
  493.6570129394531,
  7.0,
  24.969680786132812,
  121.54521942138672),
 (15.699999809265137,
  815.931396484375,
  4.0,
  24.97886085510254,
  121.53463745117188),
 (17.799999237060547,
  1783.1800537109375,
  3.0,
  24.967309951782227,
  121.51486206054688),
 (34.70000076293945,
  482.7580871582031,
  5.0,
  24.97433090209961,
  121.53862762451172),
 (17.200000762939453,
  390.5683898925781,
  5.0,
  24.9793701171875,
  121.54244995117188),
 (17.600000381469727,
  837.7233276367188,
  0.0,
  24.963340759277344,
  121.54766845703125),
 (10.800000190734863,
  252.5821990966797,
  1.0,
  24.974599838256836,
  121.53045654296875),
 (17.700000762939453,
  451.64190673828125,
  8.0,
  24.969449996948242,
  121.5448989868164),
 (13.0, 492.2312927246094, 5.0, 24.965150833129883, 121.53736877441406),
 (13.199999809265137,
  170.12890625,
  1.0,
  24.973709106445312,
  121.52983856201172),
 (27.5, 394.0173034667969, 7.0, 24.97304916381836, 121.5399398803711),
 (1.5, 23.38283920288086, 7.0, 24.96772003173828, 121.54102325439453),
 (19.100000381469727,
  461.1015930175781,
  5.0,
  24.95425033569336,
  121.53990173339844),
 (21.200000762939453,
  2185.1279296875,
  3.0,
  24.963220596313477,
  121.51236724853516),
 (0.0, 208.3905029296875, 6.0, 24.956180572509766, 121.53843688964844),
 (2.5999999046325684, 1554.25, 3.0, 24.970260620117188, 121.51641845703125),
 (2.299999952316284,
  184.3302001953125,
  6.0,
  24.965810775756836,
  121.54086303710938),
 (4.699999809265137,
  387.7720947265625,
  9.0,
  24.98118019104004,
  121.53787994384766),
 (2.0, 1455.7979736328125, 1.0, 24.951200485229492, 121.54900360107422),
 (33.5, 1978.6710205078125, 2.0, 24.986740112304688, 121.51844024658203),
 (15.0, 383.2804870605469, 7.0, 24.967350006103516, 121.54463958740234),
 (30.100000381469727,
  718.293701171875,
  3.0,
  24.97509002685547,
  121.53643798828125),
 (5.900000095367432,
  90.45606231689453,
  9.0,
  24.97433090209961,
  121.54309844970703),
 (19.200000762939453,
  461.1015930175781,
  5.0,
  24.95425033569336,
  121.53990173339844),
 (16.600000381469727,
  323.6911926269531,
  6.0,
  24.978410720825195,
  121.54280090332031),
 (13.899999618530273,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (37.70000076293945,
  490.3446044921875,
  0.0,
  24.972169876098633,
  121.53471374511719),
 (3.4000000953674316,
  56.47425079345703,
  7.0,
  24.957439422607422,
  121.537109375),
 (17.5, 395.6747131347656, 5.0, 24.95673942565918, 121.53399658203125),
 (12.600000381469727,
  383.2804870605469,
  7.0,
  24.967350006103516,
  121.54463958740234),
 (26.399999618530273,
  335.5273132324219,
  6.0,
  24.97960090637207,
  121.54139709472656),
 (18.200000762939453,
  2179.590087890625,
  3.0,
  24.962989807128906,
  121.51251983642578),
 (12.5, 1144.43603515625, 4.0, 24.99176025390625, 121.53456115722656),
 (34.900001525878906,
  567.034912109375,
  4.0,
  24.970029830932617,
  121.5457992553711),
 (16.700000762939453,
  4082.014892578125,
  0.0,
  24.94154930114746,
  121.5038070678711),
 (33.20000076293945,
  121.7261962890625,
  10.0,
  24.981779098510742,
  121.54058837890625),
 (2.5, 156.24420166015625, 4.0, 24.966960906982422, 121.5399169921875),
 (38.0, 461.7847900390625, 0.0, 24.9722900390625, 121.5344467163086),
 (16.5, 2288.010986328125, 3.0, 24.958850860595703, 121.51358795166016),
 (38.29999923706055,
  439.71051025390625,
  0.0,
  24.971609115600586,
  121.53423309326172),
 (20.0, 1626.0830078125, 3.0, 24.96622085571289, 121.51667785644531),
 (16.200000762939453,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (14.399999618530273,
  169.9803009033203,
  1.0,
  24.973690032958984,
  121.52979278564453),
 (10.300000190734863,
  3079.889892578125,
  0.0,
  24.954599380493164,
  121.56626892089844),
 (16.399999618530273,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (30.299999237060547,
  1264.72998046875,
  0.0,
  24.948829650878906,
  121.529541015625),
 (16.399999618530273,
  1643.4990234375,
  2.0,
  24.95393943786621,
  121.55174255371094),
 (21.299999237060547,
  537.797119140625,
  4.0,
  24.97425079345703,
  121.53813934326172),
 (35.400001525878906,
  318.5292053222656,
  9.0,
  24.97071075439453,
  121.54068756103516),
 (8.300000190734863,
  104.81009674072266,
  5.0,
  24.966739654541016,
  121.5406723022461),
 (3.700000047683716,
  577.9614868164062,
  6.0,
  24.972009658813477,
  121.5472183227539),
 (15.600000381469727,
  1756.4110107421875,
  2.0,
  24.983200073242188,
  121.51811981201172),
 (13.300000190734863,
  250.63099670410156,
  7.0,
  24.966060638427734,
  121.54296875),
 (15.600000381469727,
  752.7669067382812,
  2.0,
  24.977949142456055,
  121.53450775146484),
 (7.099999904632568,
  379.5574951171875,
  10.0,
  24.983430862426758,
  121.5376205444336),
 (34.599998474121094,
  272.6783142089844,
  5.0,
  24.95561981201172,
  121.5387191772461),
 (13.5, 4197.34912109375, 0.0, 24.93885040283203, 121.50382995605469),
 (16.899999618530273,
  964.7495727539062,
  4.0,
  24.988719940185547,
  121.53411102294922),
 (12.899999618530273,
  187.4822998046875,
  1.0,
  24.973880767822266,
  121.5298080444336),
 (28.600000381469727,
  197.13380432128906,
  6.0,
  24.97631072998047,
  121.54435729980469),
 (12.399999618530273,
  1712.6319580078125,
  2.0,
  24.964120864868164,
  121.5167007446289),
 (36.599998474121094,
  488.8193054199219,
  8.0,
  24.970149993896484,
  121.54493713378906),
 (4.099999904632568,
  56.47425079345703,
  7.0,
  24.957439422607422,
  121.537109375),
 (3.5, 757.3377075195312, 3.0, 24.975379943847656, 121.54971313476562),
 (15.899999618530273,
  1497.7130126953125,
  3.0,
  24.970029830932617,
  121.51696014404297),
 (13.600000381469727,
  4197.34912109375,
  0.0,
  24.93885040283203,
  121.50382995605469),
 (32.0, 1156.7769775390625, 0.0, 24.949350357055664, 121.53045654296875),
 (25.600000381469727,
  4519.68994140625,
  0.0,
  24.948259353637695,
  121.4958724975586),
 (39.79999923706055,
  617.71337890625,
  2.0,
  24.975770950317383,
  121.53475189208984),
 (7.800000190734863,
  104.81009674072266,
  5.0,
  24.966739654541016,
  121.5406723022461),
 (30.0, 1013.3410034179688, 5.0, 24.990060806274414, 121.53459930419922),
 (27.299999237060547,
  337.6015930175781,
  6.0,
  24.964309692382812,
  121.5406265258789),
 (5.099999904632568,
  1867.2330322265625,
  2.0,
  24.98406982421875,
  121.5174789428711),
 (31.299999237060547,
  600.8604125976562,
  5.0,
  24.96870994567871,
  121.5465087890625),
 (31.5, 258.1860046386719, 9.0, 24.968669891357422, 121.5433120727539),
 (1.7000000476837158,
  329.9747009277344,
  5.0,
  24.982540130615234,
  121.54395294189453),
 (33.599998474121094,
  270.8894958496094,
  0.0,
  24.972810745239258,
  121.53265380859375),
 (13.0, 750.0703735351562, 2.0, 24.973709106445312, 121.54950714111328),
 (5.699999809265137,
  90.45606231689453,
  9.0,
  24.97433090209961,
  121.54309844970703),
 (33.5, 563.285400390625, 8.0, 24.982229232788086, 121.53597259521484),
 (34.599998474121094,
  3085.169921875,
  0.0,
  24.99799919128418,
  121.5155029296875),
 (0.0, 185.42959594726562, 0.0, 24.971099853515625, 121.53170013427734),
 (13.199999809265137,
  1712.6319580078125,
  2.0,
  24.964120864868164,
  121.5167007446289),
 (17.399999618530273,
  6488.02099609375,
  1.0,
  24.957189559936523,
  121.4735336303711),
 (4.599999904632568,
  259.66070556640625,
  6.0,
  24.975849151611328,
  121.54515838623047),
 (7.800000190734863,
  104.81009674072266,
  5.0,
  24.966739654541016,
  121.5406723022461),
 (13.199999809265137,
  492.2312927246094,
  5.0,
  24.965150833129883,
  121.53736877441406),
 (4.0, 2180.2451171875, 3.0, 24.963239669799805, 121.51241302490234),
 (18.399999618530273,
  2674.9609375,
  3.0,
  24.961429595947266,
  121.50827026367188),
 (4.099999904632568,
  2147.3759765625,
  3.0,
  24.962989807128906,
  121.5128402709961),
 (12.199999809265137,
  1360.1390380859375,
  1.0,
  24.95203971862793,
  121.54842376708984),
 (3.799999952316284,
  383.8623962402344,
  5.0,
  24.980850219726562,
  121.54390716552734),
 (10.300000190734863,
  211.44729614257812,
  1.0,
  24.974170684814453,
  121.52999114990234),
 (0.0, 338.9678955078125, 9.0, 24.968530654907227, 121.54412841796875),
 (1.100000023841858,
  193.58450317382812,
  6.0,
  24.965709686279297,
  121.5408935546875),
 (5.599999904632568,
  2408.992919921875,
  0.0,
  24.955049514770508,
  121.55963897705078),
 (32.900001525878906,
  87.3022232055664,
  10.0,
  24.982999801635742,
  121.54022216796875),
 (41.400001525878906,
  281.2049865722656,
  8.0,
  24.97344970703125,
  121.54093170166016),
 (17.100000381469727,
  967.4000244140625,
  4.0,
  24.988719940185547,
  121.5340805053711),
 (32.29999923706055,
  109.94550323486328,
  10.0,
  24.98181915283203,
  121.54086303710938),
 (35.29999923706055,
  614.139404296875,
  7.0,
  24.979129791259766,
  121.53665924072266),
 (17.299999237060547,
  2261.431884765625,
  4.0,
  24.961820602416992,
  121.51222229003906),
 (14.199999809265137,
  1801.5439453125,
  1.0,
  24.95153045654297,
  121.55254364013672),
 (15.0, 1828.3189697265625, 2.0, 24.96463966369629, 121.51531219482422),
 (18.200000762939453,
  350.85150146484375,
  1.0,
  24.975439071655273,
  121.53118896484375),
 (20.200000762939453,
  2185.1279296875,
  3.0,
  24.963220596313477,
  121.51236724853516),
 (15.899999618530273,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (4.099999904632568,
  312.89630126953125,
  5.0,
  24.955909729003906,
  121.53955841064453),
 (33.900001525878906,
  157.60519409179688,
  7.0,
  24.966279983520508,
  121.54196166992188),
 (0.0, 274.014404296875, 1.0, 24.97480010986328, 121.53058624267578),
 (5.400000095367432,
  390.5683898925781,
  5.0,
  24.9793701171875,
  121.54244995117188),
 (21.700000762939453,
  1157.988037109375,
  0.0,
  24.961650848388672,
  121.55010986328125),
 (14.699999809265137,
  1717.1929931640625,
  2.0,
  24.96446990966797,
  121.51648712158203),
 (3.9000000953674316,
  49.661048889160156,
  8.0,
  24.95836067199707,
  121.53755950927734),
 (37.29999923706055,
  587.8876953125,
  8.0,
  24.97076988220215,
  121.54634094238281),
 (0.0, 292.997802734375, 6.0, 24.977439880371094, 121.5445785522461),
 (14.100000381469727,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (8.0, 132.54690551757812, 9.0, 24.982980728149414, 121.53981018066406),
 (16.299999237060547,
  3529.56396484375,
  0.0,
  24.932069778442383,
  121.5159683227539),
 (29.100000381469727,
  506.1144104003906,
  4.0,
  24.978450775146484,
  121.53888702392578),
 (16.100000381469727,
  4066.5869140625,
  0.0,
  24.942970275878906,
  121.50341796875),
 (18.299999237060547,
  82.88642883300781,
  10.0,
  24.982999801635742,
  121.5402603149414),
 (0.0, 185.42959594726562, 0.0, 24.971099853515625, 121.53170013427734),
 (16.200000762939453,
  2103.554931640625,
  3.0,
  24.960420608520508,
  121.51461791992188),
 (10.399999618530273,
  2251.93798828125,
  4.0,
  24.959569931030273,
  121.5135269165039),
 (40.900001525878906,
  122.36190032958984,
  8.0,
  24.967559814453125,
  121.54229736328125),
 (32.79999923706055,
  377.8302001953125,
  9.0,
  24.97150993347168,
  121.54350280761719),
 (6.199999809265137,
  1939.7490234375,
  1.0,
  24.951549530029297,
  121.55387115478516),
 (42.70000076293945,
  443.802001953125,
  6.0,
  24.979270935058594,
  121.53874206542969),
 (16.899999618530273,
  967.4000244140625,
  4.0,
  24.988719940185547,
  121.5340805053711),
 (32.599998474121094,
  4136.27099609375,
  1.0,
  24.955440521240234,
  121.49629974365234),
 (21.200000762939453,
  512.5487060546875,
  4.0,
  24.974000930786133,
  121.53842163085938),
 (37.099998474121094,
  918.6356811523438,
  1.0,
  24.97197914123535,
  121.55062866210938),
 (13.100000381469727,
  1164.8380126953125,
  4.0,
  24.991559982299805,
  121.5340576171875),
 (14.699999809265137,
  1717.1929931640625,
  2.0,
  24.96446990966797,
  121.51648712158203),
 (12.699999809265137,
  170.12890625,
  1.0,
  24.973709106445312,
  121.52983856201172),
 (26.799999237060547,
  482.7580871582031,
  5.0,
  24.97433090209961,
  121.53862762451172),
 (7.599999904632568,
  2175.030029296875,
  3.0,
  24.963050842285156,
  121.51254272460938),
 (12.699999809265137,
  187.4822998046875,
  1.0,
  24.973880767822266,
  121.5298080444336),
 (30.899999618530273,
  161.94200134277344,
  9.0,
  24.983530044555664,
  121.53965759277344),
 (16.399999618530273,
  289.3247985839844,
  5.0,
  24.982030868530273,
  121.5434799194336),
 (23.0, 130.9945068359375, 6.0, 24.95663070678711, 121.53765106201172),
 (1.899999976158142,
  372.13861083984375,
  7.0,
  24.972930908203125,
  121.5402603149414),
 (5.199999809265137,
  2408.992919921875,
  0.0,
  24.955049514770508,
  121.55963897705078),
 (18.5, 2175.743896484375, 3.0, 24.963300704956055, 121.5124282836914),
 (13.699999809265137,
  4082.014892578125,
  0.0,
  24.94154930114746,
  121.5038070678711),
 (5.599999904632568,
  90.45606231689453,
  9.0,
  24.97433090209961,
  121.54309844970703),
 (18.799999237060547,
  390.9696044921875,
  7.0,
  24.979230880737305,
  121.53986358642578),
 (8.100000381469727,
  104.81009674072266,
  5.0,
  24.966739654541016,
  121.5406723022461),
 (6.5, 90.45606231689453, 9.0, 24.97433090209961, 121.54309844970703)]
from pyspark.mllib.feature import StandardScaler
scaler1 = StandardScaler().fit(features_rdd)
scaled_features=scaler1.transform(features_rdd)

for data in scaled_features.collect():
    print(data)

[2.808869299771829,0.06725154690948568,3.3949381000162235,2013.0949590447945,7919.393034999268]
[1.7116547295484583,0.24292240417652702,3.0554442900146013,2012.8820961989197,7919.345808528075]
[1.1674363194598323,0.4452739297168213,1.6974690500081118,2013.4558268874762,7919.63215007973]
[1.1674363194598323,0.4452739297168213,1.6974690500081118,2013.4558268874762,7919.63215007973]
[0.4388858280893483,0.3094567958675935,1.6974690500081118,2012.8040208735013,7919.537200016594]
[0.6232178675157918,1.723328976948524,1.0184814300048672,2011.4890356682267,7917.58848667894]
[3.0283122138165033,0.49399282615128015,2.3764566700113567,2012.8007933502065,7919.144474624567]
[1.7818763950740915,0.227874433981389,2.0369628600097345,2012.8885512455092,7919.526263360108]
[2.782536217055131,4.367321291012587,0.3394938100016224,2010.5140162500102,7915.7665391323835]
[1.5712112310755355,1.4128567496928301,1.0184814300048672,2011.8322289785795,7917.739611386758]
[3.0546452965332014,0.3210603995816714,0.3394938100016224,2012.3301897154997,7918.968493879279]
[0.5529961601347445,0.07167052924862795,3.0554442900146013,2012.3979677046916,7919.579455280294]
[1.1411031530323057,0.3900067763144282,1.6974690500081118,2011.6582501038283,7919.206117597493]
[1.7906541451202098,1.9567595700325358,1.3579752400064895,2011.3302722604371,7917.452772714353]
[1.158658569413714,0.9229293727856711,1.3579752400064895,2013.7862637962348,7918.990367192253]
[3.1336448795266096,0.458920776273077,0.6789876200032448,2013.0482368028117,7919.780789183801]
[0.0,0.23214925625538416,2.0369628600097345,2012.6484849890064,7919.675896705678]
[1.5536558984049558,0.27798814312265985,0.3394938100016224,2012.4872625158491,7918.803449790478]
[1.4834340654576659,0.2916833009520058,2.715950480012979,2011.8475981371264,7919.671422618933]
[0.1316657484268045,0.018526789892036186,2.3764566700113567,2011.8652726694554,7919.4442384364565]
[0.39499724528041347,1.8032324374654856,1.0184814300048672,2011.4962591727437,7917.521375377771]
[0.9216602389876315,0.22119521912804102,2.3764566700113567,2012.4745061142553,7919.730082867362]
[1.2903243178405184,1.0776711058881911,0.3394938100016224,2010.6017741453131,7919.926445563376]
[0.8865494062248149,0.22119521912804102,2.3764566700113567,2012.4745061142553,7919.730082867362]
[3.4759756245303133,0.380868425777485,1.3579752400064895,2012.3334172387945,7919.302559022877]
[2.5718708856349184,1.1788738896031223,0.6789876200032448,2012.4857255999946,7917.89570730207]
[0.27210920504431313,0.30414347466068914,1.6974690500081118,2012.9232855438254,7919.63215007973]
[0.9128824889415131,0.21903724305722802,1.6974690500081118,2010.9153049796703,7919.320952490605]
[1.6853216468317602,0.44170334459435423,1.3579752400064895,2012.386594527367,7919.245390136696]
[0.6232178675157918,0.35753139691528435,1.6974690500081118,2012.502631674396,7919.830004137993]
[2.273428556018493,3.581059818914822,0.0,2010.2971574229132,7916.502277841498]
[2.5982041357732735,0.6096169359405251,2.3764566700113567,2013.0811268021023,7918.991858554501]
[3.3267547108545856,0.38710797902993216,0.3394938100016224,2012.3301897154997,7919.0196973164675]
[1.4483232326948494,0.2564396952767179,2.0369628600097345,2012.7267140060103,7919.560564691817]
[1.3517683170308614,0.16271725209082338,2.3764566700113567,2013.192399509982,7919.535708654346]
[1.220102568604057,3.232221670476899,0.0,2015.64193599919,7917.9543675505]
[1.2903243178405184,1.533154527826953,0.6789876200032448,2011.5542009004657,7917.72121791903]
[1.053325987414436,1.0776711058881911,0.3394938100016224,2010.6017741453131,7919.926445563376]
[0.27210920504431313,0.45793288569581236,2.0369628600097345,2012.2109250451756,7919.8479004849705]
[1.4219901499781513,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[1.1937694858873589,3.234279276129995,0.0,2009.7564704252325,7917.019283420876]
[1.4746563154115475,3.2220553150473474,0.0,2009.870970656407,7916.993930262656]
[3.1687555448677696,0.4115820637565314,1.6974690500081118,2011.4890356682267,7919.220036978476]
[3.019534631192042,0.4062936477604794,2.0369628600097345,2013.4575174949164,7919.573489831301]
[0.23699835135378952,0.4226861124645811,1.3579752400064895,2012.4074965829907,7919.876236367687]
[3.2126441276767044,0.3873033761259493,2.715950480012979,2012.0610757493432,7919.6992613809]
[1.9047645608764343,0.3676085771820948,3.0554442900146013,2012.0732173845952,7919.675896705678]
[3.1512003796188464,0.5076730892137474,1.0184814300048672,2012.502631674396,7919.19170109576]
[2.1242074749211084,3.649246514177134,0.0,2010.182810883324,7916.4963123925045]
[2.5806486356810368,3.573666598264136,0.3394938100016224,2010.3769233557716,7916.472947717283]
[1.9047645608764343,0.4061047550350635,1.3579752400064895,2012.3713790604054,7919.274720260911]
[2.7474252168706577,1.3932276714898462,0.3394938100016224,2010.76130601103,7920.2127871150315]
[2.8176468823962906,1.1398209714784304,1.0184814300048672,2012.386594527367,7917.911615166051]
[1.1674363194598323,0.3900067763144282,1.6974690500081118,2011.6582501038283,7919.206117597493]
[1.413212399932033,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[2.782536217055131,0.9195968137754665,0.0,2010.4116576540875,7918.731864402564]
[2.949312630823095,0.29414998073830584,2.715950480012979,2012.253651305936,7919.415902553741]
[0.30722007966254383,0.04474591685305818,2.3764566700113567,2011.0368750237765,7919.189215492013]
[2.659648051252788,3.573666598264136,0.3394938100016224,2010.3769233557716,7916.472947717283]
[1.1674363194598323,0.26626308419099826,1.6974690500081118,2011.0626952101352,7919.011246263728]
[0.9655488217965663,1.5301421095853742,0.6789876200032448,2011.537294826064,7917.7296689717705]
[0.4652189945168749,0.205735466660267,2.0369628600097345,2012.520306206725,7919.7136778826325]
[1.509767315596021,1.724000015212188,1.0184814300048672,2011.4873450607865,7917.58848667894]
[0.22822062223537828,0.4226861124645811,1.3579752400064895,2012.4074965829907,7919.876236367687]
[1.536100398312719,0.7889611002348912,0.0,2011.4890356682267,7919.973672034569]
[3.519864207339248,0.09804449468619773,2.715950480012979,2012.5607270937035,7919.591883299029]
[0.08777716561786966,0.15338169097163593,2.0369628600097345,2011.7032817383708,7919.435787383717]
[0.7461059077518921,0.08304357841369915,1.6974690500081118,2011.7862751945243,7919.421370881984]
[2.6684258012989064,0.36781512117345455,2.0369628600097345,2012.8256913870525,7919.2503613441895]
[1.0972145702233709,0.4452739297168213,1.6974690500081118,2013.4558268874762,7919.63215007973]
[0.579329284706857,0.07167052924862795,3.0554442900146013,2012.3979677046916,7919.579455280294]
[3.116089379434373,0.5076730892137474,1.0184814300048672,2012.502631674396,7919.19170109576]
[2.852757882580764,0.33637664483934004,2.715950480012979,2012.5219968141653,7919.320952490605]
[1.211324902268767,3.234279276129995,0.0,2009.7564704252325,7917.019283420876]
[0.5968847429436794,0.30073259722528967,3.3949381000162235,2013.1312302589652,7919.222522582223]
[1.0796591538419624,1.0776711058881911,0.3394938100016224,2010.6017741453131,7919.926445563376]
[3.1512003796188464,0.4883889602709763,1.0184814300048672,2012.631578914605,7919.22550530672]
[1.7994318951663282,1.7313297880247414,1.0184814300048672,2011.5027142193335,7917.577052901704]
[3.3530877935712837,0.43770927416813227,0.6789876200032448,2012.5309109261225,7918.974459328272]
[1.5799889811216539,1.1210096546647916,0.3394938100016224,2010.5840996129841,7919.955278566841]
[1.0357705710330276,0.4226861124645811,1.3579752400064895,2012.4074965829907,7919.876236367687]
[2.703536634061723,0.299336599707476,2.0369628600097345,2011.5872445913417,7919.354259580815]
[1.158658569413714,0.11958921279546592,2.3764566700113567,2011.82746453943,7919.54167410334]
[2.22076222316344,2.14513233267738,1.0184814300048672,2011.288314457604,7917.312584663022]
[1.3254352343141633,0.30368241392230844,2.3764566700113567,2011.8354565018744,7919.679873671673]
[0.0,0.2685724742718668,3.0554442900146013,2011.9305915932798,7919.646566581463]
[0.15799889392662397,1.153463997623701,0.3394938100016224,2010.5341498477067,7919.964226740331]
[1.4834340654576659,3.2220553150473474,0.0,2009.870970656407,7916.993930262656]
[0.7812167405147086,1.1143485988535313,0.0,2013.3164286194556,7918.568311676011]
[2.018874809211002,3.128052506890741,0.0,2010.2625768161824,7916.929801685983]
[0.0,0.21710824984735824,0.3394938100016224,2012.435775834717,7918.764177251275]
[0.7987722406069453,1.1108512302150066,0.0,2013.3132010961608,7918.569803038259]
[1.8082096452124463,1.9567595700325358,1.3579752400064895,2011.3302722604371,7917.452772714353]
[2.800091549725711,0.9082642174431681,0.0,2010.3729273745494,7918.775611028511]
[3.5900862077081945,0.13279267405910117,1.6974690500081118,2011.7507724382808,7919.394526361516]
[0.7022173249429573,0.08304357841369915,1.6974690500081118,2011.7862751945243,7919.421370881984]
[0.5617738683254487,0.07167052924862795,3.0554442900146013,2012.3979677046916,7919.579455280294]
[2.492871470063167,0.48921455592082264,1.0184814300048672,2012.6501755964466,7918.920770287336]
[1.439545482648731,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[0.5617738683254487,0.07167052924862795,3.0554442900146013,2012.3979677046916,7919.579455280294]
[1.536100398312719,0.7643944551712603,1.3579752400064895,2013.5574170254713,7918.993847037498]
[1.114769986604779,0.13479725337491694,0.3394938100016224,2012.3478642478287,7918.715459417834]
[0.09655488427242734,0.15338169097163593,2.0369628600097345,2011.7032817383708,7919.435787383717]
[0.0,0.16511284321702066,2.0369628600097345,2010.9354385773668,7919.27571450241]
[2.8703133826730007,0.31094438652978446,2.0369628600097345,2011.5638834703502,7919.5406798618405]
[0.0,0.23214925625538416,2.0369628600097345,2012.6484849890064,7919.675896705678]
[1.509767315596021,0.15015977880110146,2.715950480012979,2012.6186688214254,7919.578461038795]
[1.0708814037958443,1.0776711058881911,0.3394938100016224,2010.6017741453131,7919.926445563376]
[2.756202966916776,0.46945258544711593,0.6789876200032448,2012.258569436671,7919.091282704381]
[0.35110866247147865,1.7014180011158744,1.0184814300048672,2011.4841175374918,7917.607874388167]
[0.7109950749890757,0.08304357841369915,1.6974690500081118,2011.7862751945243,7919.421370881984]
[2.922979548106397,0.15578457231246617,2.3764566700113567,2012.613904382276,7919.523280635612]
[0.8689939061325783,1.665803839754847,1.0184814300048672,2011.2786318877195,7917.723703522777]
[1.2991020678866367,0.31158989090737055,2.0369628600097345,2011.3817589415692,7919.254835430935]
[2.685981301391143,0.11396657128775735,2.715950480012979,2012.9796903556926,7919.470088715425]
[1.8082096452124463,0.5846687817343428,0.6789876200032448,2012.9289721324876,7919.859334262207]
[2.712314384107841,5.067930116016753,0.3394938100016224,2009.933830514864,7915.391710087334]
[1.1937694858873589,3.3256613790700786,0.0,2009.5389968317936,7917.020774783124]
[2.22076222316344,1.2548213387248148,1.0184814300048672,2011.7444710832765,7917.884770645584]
[1.4571009827409678,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[1.1674363194598323,0.3900067763144282,1.6974690500081118,2011.6582501038283,7919.206117597493]
[1.1937694858873589,0.3900067763144282,1.6974690500081118,2011.6582501038283,7919.206117597493]
[2.7649807169628944,0.3287730356064927,1.3579752400064895,2013.015193111936,7919.679873671673]
[0.0,0.14692036044352125,0.0,2012.137614158907,7918.836756880688]
[0.8689939061325783,0.22119521912804102,2.3764566700113567,2012.4745061142553,7919.730082867362]
[0.09655488427242734,0.15338169097163593,2.0369628600097345,2011.7032817383708,7919.435787383717]
[3.3881984589124436,0.6375751387662827,1.3579752400064895,2012.7242549406428,7919.036599421947]
[0.3335532251623633,0.30414347466068914,1.6974690500081118,2012.9232855438254,7919.63215007973]
[3.6251968730493545,0.09903355798455589,2.0369628600097345,2011.7862751945243,7919.402977414256]
[3.379420876287982,0.17180195970516865,2.3764566700113567,2012.9240540017527,7919.48301385491]
[2.5982041357732735,0.4243109961240726,2.715950480012979,2012.9289721324876,7919.151434315059]
[0.35110866247147865,1.7014180011158744,1.0184814300048672,2011.4841175374918,7917.607874388167]
[2.3348726389196646,0.3825009260791303,1.6974690500081118,2012.3979677046916,7919.288142521144]
[1.5799889811216539,0.2958488788156798,2.715950480012979,2013.386665674015,7919.430816176223]
[2.9317574655741723,0.14813974858263068,2.0369628600097345,2011.729870382657,7919.514829582871]
[1.6589883966934051,0.7996413251217569,0.0,2011.5308397794745,7919.997036709791]
[1.0006596545593829,0.3094567958675935,1.6974690500081118,2012.8040208735013,7919.537200016594]
[1.1937694858873589,0.2528075241619782,2.0369628600097345,2011.642112487354,7919.5580790880695]
[0.8777716561786966,0.7467389335797002,0.0,2012.7282509218649,7918.339139010536]
[1.1323254029861873,0.3900067763144282,1.6974690500081118,2011.6582501038283,7919.206117597493]
[1.4219901499781513,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[0.44766353628005245,1.2358887359523067,1.0184814300048672,2012.22060761506,7917.831578725398]
[1.7379878122651566,0.5075685356878004,1.6974690500081118,2012.0626126651978,7919.799182651529]
[1.1937694858873589,0.3900067763144282,1.6974690500081118,2011.6582501038283,7919.206117597493]
[1.0445482373683177,1.0776711058881911,0.3394938100016224,2010.6017741453131,7919.926445563376]
[0.18433203942644344,0.35753139691528435,1.6974690500081118,2012.502631674396,7919.830004137993]
[0.0,0.14692036044352125,0.0,2012.137614158907,7918.836756880688]
[0.28088693416272437,0.3881454624105542,2.715950480012979,2012.0626126651978,7919.6992613809]
[1.439545482648731,2.9954531021038173,0.0,2009.061938150497,7917.55517958873]
[3.0634232140009767,0.14218558970269804,2.715950480012979,2012.3301897154997,7919.537200016594]
[3.142422462151071,0.13527438160126984,2.3764566700113567,2011.822546408695,7919.552610759826]
[0.43010811989864417,0.3072412234742074,3.0554442900146013,2012.9498741881116,7919.239424687703]
[1.053325987414436,1.0776711058881911,0.3394938100016224,2010.6017741453131,7919.926445563376]
[0.5705515765161528,0.2980493146440235,2.0369628600097345,2010.7742161042095,7919.190706854261]
[1.4834340654576659,3.2220553150473474,0.0,2009.870970656407,7916.993930262656]
[1.211324902268767,3.234279276129995,0.0,2009.7564704252325,7917.019283420876]
[2.6947590514372615,1.0020761984890492,0.0,2010.3431112069684,7918.696071708607]
[1.413212399932033,0.6464822093597283,1.3579752400064895,2012.762985220181,7919.028148369207]
[1.0182151546516194,0.3094567958675935,1.6974690500081118,2012.8040208735013,7919.537200016594]
[1.3605460670769798,0.6464822093597283,1.3579752400064895,2012.762985220181,7919.028148369207]
[0.30722007966254383,0.039347651951275965,2.715950480012979,2011.111108059558,7919.218545616228]
[1.6853216468317602,0.4883889602709763,1.0184814300048672,2012.631578914605,7919.22550530672]
[1.4044346498859146,3.2220553150473474,0.0,2009.870970656407,7916.993930262656]
[0.7461059077518921,0.08304357841369915,1.6974690500081118,2011.7862751945243,7919.421370881984]
[0.0,0.14692036044352125,0.0,2012.137614158907,7918.836756880688]
[1.2025471522226487,0.9797595820571193,0.3394938100016224,2012.6082177936134,7920.283875382196]
[0.0,0.23214925625538416,2.0369628600097345,2012.6484849890064,7919.675896705678]
[2.4753161373925874,0.2615346485620617,2.715950480012979,2012.3776804154097,7919.384583946528]
[2.422649804537534,0.4081358596094278,1.6974690500081118,2011.4841175374918,7919.585917850036]
[0.7373281577057738,1.5550377452304196,0.3394938100016224,2010.8144832996024,7920.342535630625]
[2.106651974828872,3.587396091432715,0.0,2010.2287646673792,7916.528625241216]
[0.31599778785324795,0.30414347466068914,1.6974690500081118,2012.9232855438254,7919.63215007973]
[0.579329284706857,0.07167052924862795,3.0554442900146013,2012.3979677046916,7919.579455280294]
[3.6251968730493545,0.31841981855609963,1.3579752400064895,2013.117398016273,7919.677388067926]
[0.37744182889900524,0.34231457906249413,2.3764566700113567,2012.895006292099,7919.232962117961]
[2.6508704686283266,0.37411529322551995,1.0184814300048672,2012.0530837868987,7919.220036978476]
[1.220102568604057,3.6239157385568475,0.0,2010.330201113789,7916.45008016281]
[2.896646465389699,0.1434713756175361,3.0554442900146013,2012.610676858981,7919.548136673081]
[1.149880903078424,0.9067643917938982,1.3579752400064895,2013.8024014127093,7919.023177161714]
[1.2288803186501753,0.3477125054468473,0.3394938100016224,2012.4462268625289,7918.549918208283]
[2.3612057216363627,3.5252644090643797,0.0,2010.3552528422204,7916.524151154471]
[1.0182151546516194,0.1599654318200806,2.715950480012979,2013.248804321849,7919.456169334442]
[1.1849917358412405,1.7014180011158744,1.0184814300048672,2011.4841175374918,7917.607874388167]
[1.4922118155037842,3.234279276129995,0.0,2009.7564704252325,7917.019283420876]
[1.2376580686962937,2.072296342325083,0.0,2010.8363075047391,7920.793921271082]
[2.756202966916776,1.146719763244157,1.0184814300048672,2012.2787030343675,7917.898690026567]
[1.8345427279291446,1.7313297880247414,1.0184814300048672,2011.5027142193335,7917.577052901704]
[0.7812167405147086,2.438913426137275,0.0,2010.8112557763075,7921.089210996227]
[3.0546452965332014,0.1505726612553819,2.715950480012979,2012.6186688214254,7919.580946642542]
[1.4307677326026127,3.2220553150473474,0.0,2009.870970656407,7916.993930262656]
[3.098533879342136,0.4885261081893786,2.715950480012979,2012.810475920091,7919.144474624567]
[1.158658569413714,0.5942989255562621,0.6789876200032448,2012.3478642478287,7919.997036709791]
[3.8446397870940285,0.045629516859878705,2.3764566700113567,2011.8475981371264,7919.422365123482]
[0.8514384897511701,0.333948024083993,1.6974690500081118,2013.0530012419613,7919.688324724412]
[1.3342129006494532,2.9885637888261045,0.0,2009.1183429623643,7917.525849464516]
[1.3342129006494532,0.36534196119636964,1.6974690500081118,2010.779902692872,7919.371161686295]
[2.0013193091187658,0.5608916076749141,0.6789876200032448,2012.9354271790774,7919.841935035978]
[3.019534631192042,0.1004101391098313,2.715950480012979,2011.9530305647584,7919.435787383717]
[2.9844236310075685,0.12487441287594185,2.3764566700113567,2011.749235522426,7919.505384288633]
[1.5975444812138906,0.35784682261971984,2.715950480012979,2012.004670937476,7919.696775777153]
[1.5273226482666007,0.7889611002348912,0.0,2011.4890356682267,7919.973672034569]
[1.149880903078424,0.4452739297168213,1.6974690500081118,2013.4558268874762,7919.63215007973]
[3.3618653761957455,0.5092255785030526,1.0184814300048672,2012.4994041511013,7919.190706854261]
[1.3693238171230981,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[1.5799889811216539,1.1210096546647916,0.3394938100016224,2010.5840996129841,7919.955278566841]
[1.1235477366508975,1.1486498929053959,1.0184814300048672,2012.2819305576625,7917.897198664318]
[1.9486531436853693,0.30073259722528967,3.3949381000162235,2013.1312302589652,7919.222522582223]
[3.379420876287982,0.5269459987217269,1.0184814300048672,2012.4543725165588,7919.176787473279]
[1.009437404605501,1.0776711058881911,0.3394938100016224,2010.6017741453131,7919.926445563376]
[3.0546452965332014,0.1391554234759101,2.715950480012979,2012.328652799645,7919.554102122074]
[0.45644124447075657,0.3094567958675935,1.6974690500081118,2012.8040208735013,7919.537200016594]
[0.0,0.21710824984735824,0.3394938100016224,2012.435775834717,7918.764177251275]
[1.5448781483588374,1.4306721482301723,0.6789876200032448,2013.396194552314,7918.1338281410335]
[0.5442184100886263,0.07167052924862795,3.0554442900146013,2012.3979677046916,7919.579455280294]
[1.5887667311677722,1.4128567496928301,1.0184814300048672,2011.8322289785795,7917.739611386758]
[1.6853216468317602,0.30402501774033425,2.715950480012979,2012.2101565872483,7919.688324724412]
[3.3179767933868103,0.4682075183430306,0.3394938100016224,2012.1723484572228,7919.090288462882]
[2.4577606373003507,0.29523918474612504,2.0369628600097345,2012.7242549406428,7919.455175092943]
[1.1937694858873589,0.3900067763144282,1.6974690500081118,2011.6582501038283,7919.206117597493]
[2.5718708856349184,0.4197552285637734,2.715950480012979,2012.9369640949321,7919.152925677307]
[3.265310627953414,0.1477764710216158,3.0554442900146013,2012.6154412981305,7919.550125156079]
[0.7899944905608269,1.1108512302150066,0.0,2013.3132010961608,7918.569803038259]
[2.685981301391143,0.34157999624143237,3.3949381000162235,2012.9538701693336,7919.210094563488]
[0.7987722406069453,1.1108512302150066,0.0,2013.3132010961608,7918.569803038259]
[3.0283122138165033,0.2574593339528652,2.0369628600097345,2012.7048898008736,7919.488482183153]
[0.09655488427242734,0.15338169097163593,2.0369628600097345,2011.7032817383708,7919.435787383717]
[1.4483232326948494,3.234279276129995,0.0,2009.7564704252325,7917.019283420876]
[2.8439802999563026,0.21001418188469634,2.715950480012979,2012.9023834882016,7919.368676082548]
[1.0445482373683177,2.5127208647917114,0.0,2014.559025087974,7917.928517271531]
[2.7210921341539596,0.9162532287690011,0.0,2010.3487977956308,7918.7880390472465]
[0.35110866247147865,1.7014180011158744,1.0184814300048672,2011.4841175374918,7917.607874388167]
[1.4219901499781513,3.228512099769986,0.0,2009.8210208911296,7917.003872677644]
[2.3787612217285994,3.496340706171308,0.3394938100016224,2010.4631443352198,7916.502277841498]
[3.484753541998088,0.26413545378971887,3.0554442900146013,2012.8676491898855,7919.33338050934]
[0.7022173249429573,1.7562754275300223,1.3579752400064895,2011.2488157201383,7917.658083583857]
[1.1323254029861873,0.1985810096062423,2.3764566700113567,2011.7315609900973,7919.571004227554]
[0.31599778785324795,0.29620161397676104,3.3949381000162235,2013.114170492978,7919.224511065221]
[1.1411031530323057,0.5806570116825441,0.0,2012.5873157379897,7918.411718639949]
[1.1235477366508975,0.5806570116825441,0.0,2012.5873157379897,7918.411718639949]
[1.5887667311677722,0.6637484842675013,0.0,2011.512396789218,7919.877230609185]
[0.9655488217965663,1.3569597846136696,0.6789876200032448,2011.575256647675,7917.859417487364]
[1.2025471522226487,0.1985810096062423,2.3764566700113567,2011.7315609900973,7919.571004227554]
[0.17555433123573932,1.645966331534827,1.0184814300048672,2011.5308397794745,7917.637204512382]
[2.879090965297462,0.16176923403073884,2.715950480012979,2013.045009279517,7919.327415060347]
[0.42133041170794006,1.2358887359523067,1.0184814300048672,2012.22060761506,7917.831578725398]
[0.6583287421340225,0.5067862702688738,1.6974690500081118,2012.2568788292308,7919.908052095649]
[1.439545482648731,0.30886533337957534,2.0369628600097345,2011.575256647675,7919.555593484322]
[1.9047645608764343,0.8359551536490203,0.0,2011.4132657165903,7919.982123087309]
[1.6677661467395235,0.7996413251217569,0.0,2011.5308397794745,7919.997036709791]
[1.5799889811216539,4.996517639813289,0.3394938100016224,2011.036106565849,7915.152595006872]
[3.4408649591891534,0.3365105526623499,2.3764566700113567,2012.3947401813969,7919.323438094352]
[2.782536217055131,0.9186634728639134,0.0,2010.405202607498,7918.737829851557]
[0.5178852855165138,0.07167052924862795,3.0554442900146013,2012.3979677046916,7919.579455280294]
[2.6684258012989064,1.375153935794498,0.6789876200032448,2011.6170607589227,7917.828596000902]
[0.09655488427242734,0.26144694836811866,1.6974690500081118,2013.059456288551,7919.6351328042265]
[2.7649807169628944,4.367321291012587,0.3394938100016224,2010.5140162500102,7915.7665391323835]
[1.2815466515052285,0.26877928424120656,0.3394938100016224,2012.4671289181529,7918.824328861952]
[1.5185448982204823,0.3518976447819577,0.3394938100016224,2012.4526819091186,7918.549918208283]
[0.0,0.23214925625538416,2.0369628600097345,2012.6484849890064,7919.675896705678]
[1.5536558984049558,0.6637484842675013,0.0,2011.512396789218,7919.877230609185]
[1.4922118155037842,1.1766783622775,1.3579752400064895,2012.1077979913257,7917.87880519659]
[1.4219901499781513,1.812846525889341,1.0184814300048672,2011.1506067970236,7917.656592221608]
[1.3956568998397962,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[0.34233095428077454,1.7014180011158744,1.0184814300048672,2011.4841175374918,7917.607874388167]
[2.8615354652052254,0.3911364089752038,2.3764566700113567,2012.0232676193177,7919.717654848628]
[1.378101483458388,0.6464822093597283,1.3579752400064895,2012.762985220181,7919.028148369207]
[1.5624334810294171,1.4128567496928301,1.0184814300048672,2011.8322289785795,7917.739611386758]
[3.04586771390874,0.3825009260791303,1.6974690500081118,2012.3979677046916,7919.288142521144]
[1.509767315596021,0.3094567958675935,1.6974690500081118,2012.8040208735013,7919.537200016594]
[1.5448781483588374,0.6637484842675013,0.0,2011.512396789218,7919.877230609185]
[0.9479934054151581,0.20012699452494626,0.3394938100016224,2012.4196382182429,7918.755726198535]
[1.5536558984049558,0.35784682261971984,2.715950480012979,2012.004670937476,7919.696775777153]
[1.1411031530323057,0.3900067763144282,1.6974690500081118,2011.6582501038283,7919.206117597493]
[1.158658569413714,0.13479725337491694,0.3394938100016224,2012.3478642478287,7918.715459417834]
[2.413872054491416,0.3121894536338698,2.3764566700113567,2012.2946869592563,7919.373647290042]
[0.1316657484268045,0.018526789892036186,2.3764566700113567,2011.8652726694554,7919.4442384364565]
[1.6765438967856419,0.36534196119636964,1.6974690500081118,2010.779902692872,7919.371161686295]
[1.8608759780674995,1.7313297880247414,1.0184814300048672,2011.5027142193335,7917.577052901704]
[0.0,0.16511284321702066,2.0369628600097345,2010.9354385773668,7919.27571450241]
[0.22822062223537828,1.231469922871879,1.0184814300048672,2012.0699898613004,7917.841024019636]
[0.2018874767355588,0.14604928255909894,2.0369628600097345,2011.7114273924008,7919.433798900719]
[0.41255266166182175,0.3072412234742074,3.0554442900146013,2012.9498741881116,7919.239424687703]
[0.17555433123573932,1.153463997623701,0.3394938100016224,2010.5341498477067,7919.964226740331]
[2.9405350481986336,1.567748977972384,0.6789876200032448,2013.3978851597542,7917.972761018228]
[1.316657484268045,0.30368241392230844,2.3764566700113567,2011.8354565018744,7919.679873671673]
[2.6420927185822083,0.5691214983313402,1.0184814300048672,2012.4591369557083,7919.145468866066]
[0.5178852855165138,0.07167052924862795,3.0554442900146013,2012.3979677046916,7919.579455280294]
[1.6853216468317602,0.36534196119636964,1.6974690500081118,2010.779902692872,7919.371161686295]
[1.4571009827409678,0.25646837253892263,2.0369628600097345,2012.7267140060103,7919.5600675710675]
[1.220102568604057,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[3.309199210762349,0.3885119075275124,0.0,2012.223835138355,7919.033119576701]
[0.2984423714718397,0.04474591685305818,2.3764566700113567,2011.0368750237765,7919.189215492013]
[1.536100398312719,0.31350265946046174,1.6974690500081118,2010.9804702119093,7918.986390226258]
[1.105992320269489,0.30368241392230844,2.3764566700113567,2011.8354565018744,7919.679873671673]
[2.317317138827428,0.2658464175954572,2.0369628600097345,2012.822617555343,7919.468597353177]
[1.5975444812138906,1.7269420218285219,1.0184814300048672,2011.4841175374918,7917.586995316692]
[1.0972145702233709,0.9067643917938982,1.3579752400064895,2013.8024014127093,7919.023177161714]
[3.0634232140009767,0.4492754958861153,1.3579752400064895,2012.0513931794585,7919.755436025582]
[1.4658787327870861,3.234279276129995,0.0,2009.7564704252325,7917.019283420876]
[2.9142019654819356,0.09644661383662796,3.3949381000162235,2012.9981333459489,7919.415902553741]
[0.21944291404467414,0.12379606560566893,1.3579752400064895,2011.8041034184387,7919.372155927793]
[3.335532293479047,0.36588327474525406,0.0,2012.2335177082396,7919.015720350472]
[1.4483232326948494,1.812846525889341,1.0184814300048672,2011.1506067970236,7917.656592221608]
[3.3618653761957455,0.3483932881765047,0.0,2012.1786498122271,7919.001800969489]
[1.7555433123573931,1.2883849549391233,1.0184814300048672,2011.7444710832765,7917.857926125116]
[1.4219901499781513,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[1.2639911514129918,0.1346795097591447,0.3394938100016224,2012.346327331974,7918.7124766933375]
[0.9041048226062232,2.440271364624136,0.0,2010.8080282530127,7921.089210996227]
[1.439545482648731,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[2.659648051252788,1.0020761984890492,0.0,2010.3431112069684,7918.696071708607]
[1.439545482648731,1.3021840859788236,0.6789876200032448,2010.7548509644403,7920.142693089366]
[1.869653560691961,0.4261096843035703,1.3579752400064895,2012.3915126581019,7919.256326793183]
[3.1073117968099115,0.252378404961011,3.0554442900146013,2012.1062610754711,7919.422365123482]
[0.7285504913704839,0.08304357841369915,1.6974690500081118,2011.7862751945243,7919.421370881984]
[0.3247755169716592,0.45793288569581236,2.0369628600097345,2012.2109250451756,7919.8479004849705]
[1.3693238171230981,1.3916469885346634,0.6789876200032448,2013.1126335771235,7917.951881946753]
[1.1674363194598323,0.1985810096062423,2.3764566700113567,2011.7315609900973,7919.571004227554]
[1.3693238171230981,0.5964354541299625,0.6789876200032448,2012.6895206423267,7919.0196973164675]
[0.6232178675157918,0.30073259722528967,3.3949381000162235,2013.1312302589652,7919.222522582223]
[3.0370897964409647,0.21604963330723628,1.6974690500081118,2010.8902532512388,7919.294107970137]
[1.1849917358412405,3.3256613790700786,0.0,2009.5389968317936,7917.020774783124]
[1.4834340654576659,0.7643944551712603,1.3579752400064895,2013.5574170254713,7918.993847037498]
[1.1323254029861873,0.14854676743144346,0.3394938100016224,2012.361696490521,7918.713470934836]
[2.510426970155404,0.15619388824383332,2.0369628600097345,2012.5574995704087,7919.661480203945]
[1.0884368201772525,1.3569597846136696,0.6789876200032448,2011.575256647675,7917.859417487364]
[3.2126441276767044,0.3873033761259493,2.715950480012979,2012.0610757493432,7919.6992613809]
[0.35988637066218276,0.04474591685305818,2.3764566700113567,2011.0368750237765,7919.189215492013]
[0.30722007966254383,0.6000570103053195,1.0184814300048672,2012.4824980766996,7920.010458970025]
[1.3956568998397962,1.1866742983613356,1.0184814300048672,2012.0513931794585,7917.876319592844]
[1.1937694858873589,3.3256613790700786,0.0,2009.5389968317936,7917.020774783124]
[2.808869299771829,0.9165424193726843,0.0,2010.3850690098016,7918.755726198535]
[2.247095473301795,3.581059818914822,0.0,2010.2971574229132,7916.502277841498]
[3.49353112462255,0.4894292726901126,0.6789876200032448,2012.514004851721,7919.035605180448]
[0.6846619085615491,0.08304357841369915,1.6974690500081118,2011.7862751945243,7919.421370881984]
[2.63331496853609,0.8028946226939285,1.6974690500081118,2013.6654622100561,7919.025662765461]
[2.396316554399179,0.267489919713547,2.0369628600097345,2011.5904721146364,7919.418388157487]
[0.44766353628005245,1.4794539605468038,0.6789876200032448,2013.1827169400974,7917.910123803803]
[2.7474252168706577,0.4760762592622816,1.6974690500081118,2011.9450386023138,7919.801668255276]
[2.7649807169628944,0.20456702539423122,3.0554442900146013,2011.941811079019,7919.593374661277]
[0.14922118573591986,0.26144694836811866,1.6974690500081118,2013.059456288551,7919.6351328042265]
[2.949312630823095,0.21463230919139176,0.0,2012.2754755110727,7918.898896974363]
[1.1411031530323057,0.5942989255562621,0.6789876200032448,2012.3478642478287,7919.997036709791]
[0.5003298272796914,0.07167052924862795,3.0554442900146013,2012.3979677046916,7919.579455280294]
[2.9405350481986336,0.44630466692867843,2.715950480012979,2013.0344045601196,7919.1151445003525]
[3.0370897964409647,2.4444548597317337,0.0,2014.3051265887789,7917.781369529708]
[0.0,0.14692036044352125,0.0,2012.137614158907,7918.836756880688]
[1.158658569413714,1.3569597846136696,0.6789876200032448,2011.575256647675,7917.859417487364]
[1.5273226482666007,5.140616191507609,0.3394938100016224,2011.01674142608,7915.046708287249]
[0.4037749534711176,0.205735466660267,2.0369628600097345,2012.520306206725,7919.7136778826325]
[0.6846619085615491,0.08304357841369915,1.6974690500081118,2011.7862751945243,7919.421370881984]
[1.158658569413714,0.3900067763144282,1.6974690500081118,2011.6582501038283,7919.206117597493]
[0.35110866247147865,1.7274610174069047,1.0184814300048672,2011.5042511351883,7917.580035626201]
[1.6150998138844703,2.11943634511077,1.0184814300048672,2011.358397820578,7917.310099059276]
[0.35988637066218276,1.7014180011158744,1.0184814300048672,2011.4841175374918,7917.607874388167]
[1.0708814037958443,1.0776711058881911,0.3394938100016224,2010.6017741453131,7919.926445563376]
[0.3335532251623633,0.30414347466068914,1.6974690500081118,2012.9232855438254,7919.63215007973]
[0.9041048226062232,0.1675348145228683,0.3394938100016224,2012.3850576115121,7918.725401832822]
[0.0,0.2685724742718668,3.0554442900146013,2011.9305915932798,7919.646566581463]
[0.09655488427242734,0.15338169097163593,2.0369628600097345,2011.7032817383708,7919.435787383717]
[0.49155211908898727,1.908703442364545,0.0,2010.8442994671834,7920.6572130649965]
[2.8878688827652375,0.0691716661267508,3.3949381000162235,2013.0964959606492,7919.392040757769]
[3.6339747905171293,0.2228055223582665,2.715950480012979,2012.3269621922047,7919.438272987463]
[1.5009895655499026,0.7664944722222548,1.3579752400064895,2013.5574170254713,7918.991858554501]
[2.8352023824885273,0.08711248537155993,3.3949381000162235,2013.0013608692436,7919.433798900719]
[3.098533879342136,0.48659752603638695,2.3764566700113567,2012.784655733732,7919.159885367799]
[1.5185448982204823,1.791787259908208,1.3579752400064895,2011.389904595599,7917.567607607465]
[1.2464357350315836,1.427406905828718,0.3394938100016224,2010.5607384919929,7920.194890768053]
[1.316657484268045,1.4486214062308915,0.6789876200032448,2011.6170607589227,7917.768941510973]
[1.5975444812138906,0.27798814312265985,0.3394938100016224,2012.4872625158491,7918.803449790478]
[1.7730988124496299,1.7313297880247414,1.0184814300048672,2011.5027142193335,7917.577052901704]
[1.3956568998397962,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[0.35988637066218276,0.2479153186368254,1.6974690500081118,2010.91361437223,7919.348791252572]
[2.975646048383107,0.12487441287594185,2.3764566700113567,2011.749235522426,7919.505384288633]
[0.0,0.21710824984735824,0.3394938100016224,2012.435775834717,7918.764177251275]
[0.47399670270757904,0.3094567958675935,1.6974690500081118,2012.8040208735013,7919.537200016594]
[1.9047645608764343,0.9175019712051733,0.0,2011.3762260444923,7920.036309248994]
[1.2903243178405184,1.360573603247791,0.6789876200032448,2011.603382207816,7917.845498106381]
[0.34233095428077454,0.039347651951275965,2.715950480012979,2011.111108059558,7919.218545616228]
[3.2740882105778755,0.46579766112518006,2.715950480012979,2012.1110255146207,7919.7907315987895]
[0.0,0.23214925625538416,2.0369628600097345,2012.6484849890064,7919.675896705678]
[1.2376580686962937,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[0.7022173249429573,0.10502012386336701,3.0554442900146013,2013.0949590447945,7919.3651962373015]
[1.4307677326026127,2.796559024325235,0.0,2008.9926232454504,7917.811693895422]
[2.5543155529643387,0.4010067067332254,1.3579752400064895,2012.729941529305,7919.305044626624]
[1.413212399932033,3.2220553150473474,0.0,2009.870970656407,7916.993930262656]
[1.6063220638383522,0.06567292528364782,3.3949381000162235,2013.0964959606492,7919.394526361516]
[0.0,0.14692036044352125,0.0,2012.137614158907,7918.836756880688]
[1.4219901499781513,1.6666975257675671,1.0184814300048672,2011.2770949718647,7917.723703522777]
[0.9128824889415131,1.784265015757417,1.3579752400064895,2011.2085485247455,7917.652615255613]
[3.5900862077081945,0.09695029754629986,2.715950480012979,2011.852362576276,7919.527257601607]
[2.879090965297462,0.2993640196192299,3.0554442900146013,2012.1706578497826,7919.605802680012]
[0.5442184100886263,1.536910136904218,0.3394938100016224,2010.5622754078474,7920.281389778449]
[3.7480850388516975,0.35163507615608836,2.0369628600097345,2012.796028911057,7919.295599332386]
[1.4834340654576659,0.7664944722222548,1.3579752400064895,2013.5574170254713,7918.991858554501]
[2.8615354652052254,3.2772677011656817,0.3394938100016224,2010.8758062422046,7916.530116603464]
[1.8608759780674995,0.4061047550350635,1.3579752400064895,2012.3713790604054,7919.274720260911]
[3.256532710485639,0.7278573018600822,0.3394938100016224,2012.2084659798081,7920.070113459953]
[1.149880903078424,0.9229293727856711,1.3579752400064895,2013.7862637962348,7918.990367192253]
[1.2903243178405184,1.360573603247791,0.6789876200032448,2011.603382207816,7917.845498106381]
[1.114769986604779,0.13479725337491694,0.3394938100016224,2012.3478642478287,7918.715459417834]
[2.3524279715902443,0.3825009260791303,1.6974690500081118,2012.3979677046916,7919.288142521144]
[0.6671064503247266,1.723328976948524,1.0184814300048672,2011.4890356682267,7917.58848667894]
[1.114769986604779,0.14854676743144346,0.3394938100016224,2012.361696490521,7918.713470934836]
[2.712314384107841,0.12831057030934723,3.0554442900146013,2013.1392222214097,7919.355253822314]
[1.439545482648731,0.22923904609756549,1.6974690500081118,2013.0184206352308,7919.604311317764]
[2.018874809211002,0.10379012078487489,2.0369628600097345,2010.9717097915375,7919.224511065221]
[0.16677661258118165,0.2948544355081812,2.3764566700113567,2012.2851580809572,7919.394526361516]
[0.45644124447075657,1.908703442364545,0.0,2010.8442994671834,7920.6572130649965]
[1.6238775639305887,1.7238945912128518,1.0184814300048672,2011.5091692659232,7917.581029867699]
[1.2025471522226487,3.234279276129995,0.0,2009.7564704252325,7917.019283420876]
[0.49155211908898727,0.07167052924862795,3.0554442900146013,2012.3979677046916,7919.579455280294]
[1.650210646647287,0.3097746879132979,2.3764566700113567,2012.792801387762,7919.368676082548]
[0.7109950749890757,0.08304357841369915,1.6974690500081118,2011.7862751945243,7919.421370881984]
[0.5705515765161528,0.07167052924862795,3.0554442900146013,2012.3979677046916,7919.579455280294]

df =scaled_features.map(lambda x: (x, )).toDF(["Scaled_data"])

df.show()

+--------------------+
|         Scaled_data|
+--------------------+
|[2.80886929977182...|
|[1.71165472954845...|
|[1.16743631945983...|
|[1.16743631945983...|
|[0.43888582808934...|
|[0.62321786751579...|
|[3.02831221381650...|
|[1.78187639507409...|
|[2.78253621705513...|
|[1.57121123107553...|
|[3.05464529653320...|
|[0.55299616013474...|
|[1.14110315303230...|
|[1.79065414512020...|
|[1.15865856941371...|
|[3.13364487952660...|
|[0.0,0.2321492562...|
|[1.55365589840495...|
|[1.48343406545766...|
|[0.13166574842680...|
+--------------------+
only showing top 20 rows


 

Spark Session :
This is the entry point to the programming spark with Dataframe API & dataset. That allows you to perform various tasks using spark. spark context, hive context, SQL context, now all of it is encapsulated in the session. Before spark 2.0, sparkContext was used to access all spark functionality. The spark driver program uses sparkContext to connect to the cluster through a resource manager. sparkConf creates the sparkContext object, which stores configuration parameter like appName (to identify your spark driver), application, number of core, and memory size of executor running on the worker node. After spark 2.0 onwards these two features are encapsulated in spark session. So each time you want to perform tasks using spark you need to create a session and after execution, you must end the session.
Now read the data set using read.csv() you can allow the spark to read the dataset and to execute when it is required. Here I have used one real estate dataset used.
Here you can notice the columns such as No and X1 transaction date are independent of the price of the house and the transaction date is not properly given in the datasets. so we will drop those columns
colm = ['No','X1 transaction date']df = dataset.select([column for column in dataset.columns if column not in colm])
there is a cool spark syntax is there to do that. if you apply a list comprehension in select() you will get the required data frame. This data frame is different from the Pandas data frame. Well, it is related to the objects created in spark and pandas.
Spark data frame is distributed hence you will get the benefit of parallel processing and speed of processing while handling large datasets.
Spark assures fault tolerance. So if your data processing got interrupted/failed in between processing then spark can regenerate the failed result set from the lineage.
df.printSchema()#outputroot |-- X2 house age: string (nullable = true) |-- X3 distance to the nearest MRT station: string (nullable = true) |-- X4 number of convenience stores: string (nullable = true) |-- X5 latitude: string (nullable = true) |-- X6 longitude: string (nullable = true) |-- Y house price of unit area: string (nullable = true)
If you look at the schema of the dataset, it is in the string format. Lets typecast to float.
from pyspark.sql.functions import coldf = df.select(*(col(c).cast('float').alias(c) for c in df.columns))
Let’s check for null values.
df.select([count(when(col(c).isNull(), c)).alias(c) for c in df.columns]).show()
Great! there are no null values present. But the column names are a bit longer. So we will now replace those with our own custom names. For renaming the column name there are several techniques that are there, I have used reduce () to do that. You can perform in another way.
from functools import reduceoldColumns = df.schema.namesnewColumns = ['Age','Distance_2_MRT','Stores','Latitude','Longitude','Price']df = reduce(lambda df, idx: df.withColumnRenamed(oldColumns[idx], newColumns[idx]),range(len(oldColumns)), df)
Try different techniques and let me know as well.
Sharing is caring : )
Now we will do split to get Features and Label columns.
VectorAssembler:
VectorAssembler is a transformer that combines a given list of columns into a single vector column. It is useful for combining raw features and features generated by different feature transformers into a single feature vector, in order to train ML models.
from pyspark.ml.feature import VectorAssembler#let's assemble our features together using vectorAssemblerassembler = VectorAssembler(    inputCols=features.columns,    outputCol="features")output = assembler.transform(df).select('features','Price')
This will transform the target and features columns. Now we will split it into train and test dataset.
train,test = output.randomSplit([0.75, 0.25])
Let’s now apply a Linear Regression model
from pyspark.ml.regression import LinearRegressionlin_reg = LinearRegression(featuresCol = 'features', labelCol='Price')linear_model = lin_reg.fit(train)print("Coefficients: " + str(linear_model.coefficients))print("\nIntercept: " + str(linear_model.intercept))#Output Coefficients: [-0.2845380180805475,-0.004727311005402087,1.187968326885585,201.55230488460887,-43.50846789357342]Intercept: 298.6774040798928
The coefficients for each column and Intercept we got.
trainSummary = linear_model.summaryprint("RMSE: %f" % trainSummary.rootMeanSquaredError)print("\nr2: %f" % trainSummary.r2)#OutputRMSE: 9.110080r2: 0.554706
For testing dataset
from  pyspark.sql.functions import abspredictions = linear_model.transform(test)x =((predictions['Price']-predictions['prediction'])/predictions['Price'])*100predictions = predictions.withColumn('Accuracy',abs(x))predictions.select("prediction","Price","Accuracy","features").show()
r — square value for the test dataset
from pyspark.ml.evaluation import RegressionEvaluatorpred_evaluator = RegressionEvaluator(predictionCol="prediction", \                 labelCol="Price",metricName="r2")print("R Squared (R2) on test data = %g" % pred_evaluator.evaluate(predictions))#outputR Squared (R2) on test data = 0.610204
Let’s now check for adjusted R square.
Adjusted R — square:
The adjusted R-squared is a modified version of R-squared that has been adjusted for the number of predictors in the model. The adjusted R-squared increases only if the new term improves the model more than would be expected by chance. It decreases when a predictor improves the model by less than expected. We use Adjusted R2 value which penalizes excessive use of such features that do not correlate with the output data.
r2 = trainSummary.r2n = df.count()p = len(df.columns)adjusted_r2 = 1-(1-r2)*(n-1)/(n-p-1)
We got adjusted r squared value 0.54 for training and testing.
Let’s now explore more on the LinearRegression() in the spark.
lin_reg = LinearRegression(featuresCol = 'features', labelCol='Price',maxIter=50, regParam=0.12, elasticNetParam=0.2)linear_model = lin_reg.fit(train)
Here you can apply Lasso, Ridge, Elastic net regularization, alpha values you can modify. There is a very good article on these concepts. This is a shared repository for Learning Apache Spark Notes. This shared repository mainly contains the self-learning and self-teaching notes from Wenqiang during his IMA Data Science Fellowship. Thanks to George Feng, A senior data scientist at ML Lab.
I will be sharing other spark implemented ML algorithms in future stories.
For suggestions, I will be available on LinkedIn , Gmail , Twiiter &follow my work at GitHub.