Skip to content

Instantly share code, notes, and snippets.

@ceteri
Created June 18, 2012 18:24
Show Gist options
  • Save ceteri/2949834 to your computer and use it in GitHub Desktop.
Save ceteri/2949834 to your computer and use it in GitHub Desktop.
Cascading Sample Recommender
bash-3.2$ elastic-mapreduce --create --name "Sample Recommender" \
> --jar s3n://temp.cascading.org/sample/recommender.jar \
> --arg s3n://temp.cascading.org/sample/en.stop \
> --arg s3n://temp.cascading.org/sample/tweets/ \
> --arg s3n://temp.cascading.org/sample/out/token \
> --arg s3n://temp.cascading.org/sample/out/similarity
Created job flow j-2HA2BVCBJGMVX
bash-3.2$ elastic-mapreduce --list
j-2HA2BVCBJGMVX STARTING Sample Recommender
PENDING Example Jar Step
bash-3.2$ elastic-mapreduce --describe --jobflow j-2HA2BVCBJGMVX
{
"JobFlows": [
{
"Steps": [
{
"ExecutionStatusDetail": {
"State": "PENDING",
"StartDateTime": null,
"LastStateChangeReason": null,
"EndDateTime": null,
"CreationDateTime": 1343249539.0
},
"StepConfig": {
"ActionOnFailure": "CANCEL_AND_WAIT",
"HadoopJarStep": {
"Jar": "s3n:\/\/temp.cascading.org\/sample\/recommender.jar",
"Args": [
"s3n:\/\/temp.cascading.org\/sample\/en.stop",
"s3n:\/\/temp.cascading.org\/sample\/tweets\/",
"s3n:\/\/temp.cascading.org\/sample\/out\/token",
"s3n:\/\/temp.cascading.org\/sample\/out\/similarity"
],
"MainClass": null,
"Properties": []
},
"Name": "Example Jar Step"
}
}
],
"ExecutionStatusDetail": {
"State": "STARTING",
"StartDateTime": null,
"LastStateChangeReason": "Starting instances",
"ReadyDateTime": null,
"EndDateTime": null,
"CreationDateTime": 1343249539.0
},
"BootstrapActions": [],
"LogUri": null,
"SupportedProducts": [],
"JobFlowId": "j-2HA2BVCBJGMVX",
"Name": "Sample Recommender",
"Instances": {
"MasterPublicDnsName": null,
"MasterInstanceType": "m1.small",
"Placement": {
"AvailabilityZone": "us-east-1d"
},
"InstanceGroups": [
{
"LaunchGroup": null,
"InstanceRunningCount": 0,
"BidPrice": null,
"Market": "ON_DEMAND",
"InstanceRole": "MASTER",
"InstanceGroupId": "ig-D93HPRWBFYPD",
"State": "PROVISIONING",
"StartDateTime": null,
"LastStateChangeReason": "",
"ReadyDateTime": null,
"InstanceRequestCount": 1,
"EndDateTime": null,
"CreationDateTime": 1343249539.0,
"Name": "Master Instance Group",
"InstanceType": "m1.small"
}
],
"HadoopVersion": "0.20.205",
"NormalizedInstanceHours": 0,
"KeepJobFlowAliveWhenNoSteps": false,
"SlaveInstanceType": null,
"Ec2SubnetId": null,
"Ec2KeyName": "concurrent-pnathan",
"TerminationProtected": false,
"MasterInstanceId": null,
"InstanceCount": 1
},
"AmiVersion": "latest"
}
]
}
bash-3.2$ elastic-mapreduce --describe --jobflow j-2HA2BVCBJGMVX
{
"JobFlows": [
{
"ExecutionStatusDetail": {
"EndDateTime": 1343250297.0,
"State": "COMPLETED",
"StartDateTime": 1343249807.0,
"LastStateChangeReason": "Steps completed",
"ReadyDateTime": 1343249808.0,
"CreationDateTime": 1343249539.0
},
"Name": "Sample Recommender",
"JobFlowId": "j-2HA2BVCBJGMVX",
"Instances": {
"InstanceCount": 1,
"SlaveInstanceType": null,
"Placement": {
"AvailabilityZone": "us-east-1d"
},
"NormalizedInstanceHours": 1,
"Ec2KeyName": "concurrent-pnathan",
"MasterPublicDnsName": "ec2-107-21-197-239.compute-1.amazonaws.com",
"MasterInstanceType": "m1.small",
"Ec2SubnetId": null,
"MasterInstanceId": "i-d4fbc1ac",
"KeepJobFlowAliveWhenNoSteps": false,
"HadoopVersion": "0.20.205",
"TerminationProtected": false,
"InstanceGroups": [
{
"InstanceRole": "MASTER",
"EndDateTime": 1343250297.0,
"BidPrice": null,
"Name": "Master Instance Group",
"Market": "ON_DEMAND",
"LaunchGroup": null,
"State": "ENDED",
"StartDateTime": 1343249701.0,
"LastStateChangeReason": "Job flow terminated",
"InstanceRunningCount": 0,
"InstanceRequestCount": 1,
"ReadyDateTime": 1343249802.0,
"InstanceType": "m1.small",
"InstanceGroupId": "ig-D93HPRWBFYPD",
"CreationDateTime": 1343249539.0
}
]
},
"SupportedProducts": [],
"LogUri": null,
"BootstrapActions": [],
"AmiVersion": "latest",
"Steps": [
{
"ExecutionStatusDetail": {
"EndDateTime": 1343250245.0,
"State": "COMPLETED",
"StartDateTime": 1343249806.0,
"LastStateChangeReason": null,
"CreationDateTime": 1343249539.0
},
"StepConfig": {
"HadoopJarStep": {
"MainClass": null,
"Properties": [],
"Args": [
"s3n:\/\/temp.cascading.org\/sample\/en.stop",
"s3n:\/\/temp.cascading.org\/sample\/tweets\/",
"s3n:\/\/temp.cascading.org\/sample\/out\/token",
"s3n:\/\/temp.cascading.org\/sample\/out\/similarity"
],
"Jar": "s3n:\/\/temp.cascading.org\/sample\/recommender.jar"
},
"Name": "Example Jar Step",
"ActionOnFailure": "CANCEL_AND_WAIT"
}
}
]
}
]
}
bash-3.2$
bash-3.2$ ls
README.md build.gradle data docs src
bash-3.2$ gradle -version
------------------------------------------------------------
Gradle 1.0
------------------------------------------------------------
Gradle build time: Tuesday, June 12, 2012 12:56:21 AM UTC
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.8.2 compiled on December 20 2010
Ivy: 2.2.0
JVM: 1.6.0_33 (Apple Inc. 20.8-b03-424)
OS: Mac OS X 10.6.8 x86_64
bash-3.2$ hadoop version
Warning: $HADOOP_HOME is deprecated.
Hadoop 0.20.205.0
Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-205 -r 1179940
Compiled by hortonfo on Fri Oct 7 06:20:32 UTC 2011
bash-3.2$ gradle clean jar
:clean UP-TO-DATE
:compileJava
Note: /Users/paco/src/concur/sampleapp/src/main/java/sample/recommender/Main.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
:processResources UP-TO-DATE
:classes
:jar
BUILD SUCCESSFUL
Total time: 8.975 secs
bash-3.2$ rm -rf output
bash-3.2$ hadoop jar ./build/libs/recommender.jar data/en.stop data/tweets output/token output/similarity
Warning: $HADOOP_HOME is deprecated.
12/06/27 11:36:30 INFO util.HadoopUtil: resolving application jar from found main method on: sample.recommender.Main
12/06/27 11:36:30 INFO planner.HadoopPlanner: using application jar: /Users/paco/src/concur/sampleapp/./build/libs/recommender.jar
12/06/27 11:36:30 INFO property.AppProps: using app.id: 228BD108A725BA961C5697F210451D60
12/06/27 11:36:30 INFO mapred.FileInputFormat: Total input paths to process : 5
12/06/27 11:36:31 INFO util.Version: Concurrent, Inc - Cascading 2.0.1
12/06/27 11:36:31 INFO flow.Flow: [similarity] starting
12/06/27 11:36:31 INFO flow.Flow: [similarity] source: Lfs["TextDelimited[['stop']]"]["data/en.stop"]"]
12/06/27 11:36:31 INFO flow.Flow: [similarity] source: Lfs["TextDelimited[['uid', 'time', 'tags', 'text']->[ALL]]"]["data/tweets"]"]
12/06/27 11:36:31 INFO flow.Flow: [similarity] sink: Hfs["TextDelimited[[UNKNOWN]->['token', 'count']]"]["output/token"]"]
12/06/27 11:36:31 INFO flow.Flow: [similarity] sink: Hfs["TextDelimited[[UNKNOWN]->['uid', 'recommend_uid', 'similarity']]"]["output/similarity"]"]
12/06/27 11:36:31 INFO flow.Flow: [similarity] parallel execution is enabled: false
12/06/27 11:36:31 INFO flow.Flow: [similarity] starting jobs: 8
12/06/27 11:36:31 INFO flow.Flow: [similarity] allocating threads: 1
12/06/27 11:36:31 INFO flow.FlowStep: [similarity] starting step: (2/8)
12/06/27 11:36:31 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
12/06/27 11:36:31 INFO mapred.FileInputFormat: Total input paths to process : 5
12/06/27 11:36:32 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:36:32 INFO io.MultiInputSplit: current split input path: file:/Users/paco/src/concur/sampleapp/data/tweets/tweets.5.tsv
12/06/27 11:36:32 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:36:32 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:36:34 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:36:34 INFO flow.FlowStep: [similarity] submitted hadoop job: job_local_0001
12/06/27 11:36:34 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:36:34 INFO hadoop.FlowMapper: sourcing from: Lfs["TextDelimited[['uid', 'time', 'tags', 'text']->[ALL]]"]["data/tweets"]"]
12/06/27 11:36:34 INFO hadoop.FlowMapper: sinking to: GroupBy(tweet)[by:[{?}:ALL]]
12/06/27 11:36:34 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:36:34 INFO mapred.MapTask: Finished spill 0
12/06/27 11:36:34 INFO mapred.Task: Task:attempt_local_0001_m_000000_0 is done. And is in the process of commiting
12/06/27 11:36:35 INFO mapred.LocalJobRunner: file:/Users/paco/src/concur/sampleapp/data/tweets/tweets.5.tsv:0+15130
12/06/27 11:36:35 INFO mapred.Task: Task 'attempt_local_0001_m_000000_0' done.
12/06/27 11:36:35 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:36:35 INFO io.MultiInputSplit: current split input path: file:/Users/paco/src/concur/sampleapp/data/tweets/tweets.3.tsv
12/06/27 11:36:35 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:36:35 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:36:35 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:36:35 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:36:35 INFO hadoop.FlowMapper: sourcing from: Lfs["TextDelimited[['uid', 'time', 'tags', 'text']->[ALL]]"]["data/tweets"]"]
12/06/27 11:36:35 INFO hadoop.FlowMapper: sinking to: GroupBy(tweet)[by:[{?}:ALL]]
12/06/27 11:36:35 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:36:35 INFO mapred.MapTask: Finished spill 0
12/06/27 11:36:35 INFO mapred.Task: Task:attempt_local_0001_m_000001_0 is done. And is in the process of commiting
12/06/27 11:36:38 INFO mapred.LocalJobRunner: file:/Users/paco/src/concur/sampleapp/data/tweets/tweets.3.tsv:0+14988
12/06/27 11:36:38 INFO mapred.Task: Task 'attempt_local_0001_m_000001_0' done.
12/06/27 11:36:38 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:36:38 INFO io.MultiInputSplit: current split input path: file:/Users/paco/src/concur/sampleapp/data/tweets/tweets.1.tsv
12/06/27 11:36:38 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:36:38 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:36:38 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:36:38 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:36:38 INFO hadoop.FlowMapper: sourcing from: Lfs["TextDelimited[['uid', 'time', 'tags', 'text']->[ALL]]"]["data/tweets"]"]
12/06/27 11:36:38 INFO hadoop.FlowMapper: sinking to: GroupBy(tweet)[by:[{?}:ALL]]
12/06/27 11:36:38 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:36:38 INFO mapred.MapTask: Finished spill 0
12/06/27 11:36:38 INFO mapred.Task: Task:attempt_local_0001_m_000002_0 is done. And is in the process of commiting
12/06/27 11:36:41 INFO mapred.LocalJobRunner: file:/Users/paco/src/concur/sampleapp/data/tweets/tweets.1.tsv:0+14706
12/06/27 11:36:41 INFO mapred.Task: Task 'attempt_local_0001_m_000002_0' done.
12/06/27 11:36:41 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:36:41 INFO io.MultiInputSplit: current split input path: file:/Users/paco/src/concur/sampleapp/data/tweets/tweets.4.tsv
12/06/27 11:36:41 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:36:41 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:36:41 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:36:41 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:36:41 INFO hadoop.FlowMapper: sourcing from: Lfs["TextDelimited[['uid', 'time', 'tags', 'text']->[ALL]]"]["data/tweets"]"]
12/06/27 11:36:41 INFO hadoop.FlowMapper: sinking to: GroupBy(tweet)[by:[{?}:ALL]]
12/06/27 11:36:41 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:36:41 INFO mapred.MapTask: Finished spill 0
12/06/27 11:36:41 INFO mapred.Task: Task:attempt_local_0001_m_000003_0 is done. And is in the process of commiting
12/06/27 11:36:44 INFO mapred.LocalJobRunner: file:/Users/paco/src/concur/sampleapp/data/tweets/tweets.4.tsv:0+14459
12/06/27 11:36:44 INFO mapred.Task: Task 'attempt_local_0001_m_000003_0' done.
12/06/27 11:36:44 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:36:44 INFO io.MultiInputSplit: current split input path: file:/Users/paco/src/concur/sampleapp/data/tweets/tweets.2.tsv
12/06/27 11:36:44 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:36:44 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:36:44 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:36:44 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:36:44 INFO hadoop.FlowMapper: sourcing from: Lfs["TextDelimited[['uid', 'time', 'tags', 'text']->[ALL]]"]["data/tweets"]"]
12/06/27 11:36:44 INFO hadoop.FlowMapper: sinking to: GroupBy(tweet)[by:[{?}:ALL]]
12/06/27 11:36:44 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:36:44 INFO mapred.MapTask: Finished spill 0
12/06/27 11:36:44 INFO mapred.Task: Task:attempt_local_0001_m_000004_0 is done. And is in the process of commiting
12/06/27 11:36:47 INFO mapred.LocalJobRunner: file:/Users/paco/src/concur/sampleapp/data/tweets/tweets.2.tsv:0+13704
12/06/27 11:36:47 INFO mapred.Task: Task 'attempt_local_0001_m_000004_0' done.
12/06/27 11:36:47 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:36:47 INFO mapred.LocalJobRunner:
12/06/27 11:36:47 INFO mapred.Merger: Merging 5 sorted segments
12/06/27 11:36:47 INFO mapred.Merger: Down to the last merge-pass, with 5 segments left of total size: 164996 bytes
12/06/27 11:36:47 INFO mapred.LocalJobRunner:
12/06/27 11:36:47 INFO hadoop.FlowReducer: sourcing from: GroupBy(tweet)[by:[{?}:ALL]]
12/06/27 11:36:47 INFO hadoop.FlowReducer: sinking to: TempHfs["SequenceFile[['uid', 'token']]"][tweet/69793/]
12/06/27 11:36:47 INFO mapred.Task: Task:attempt_local_0001_r_000000_0 is done. And is in the process of commiting
12/06/27 11:36:47 INFO mapred.LocalJobRunner:
12/06/27 11:36:47 INFO mapred.Task: Task attempt_local_0001_r_000000_0 is allowed to commit now
12/06/27 11:36:47 INFO mapred.FileOutputCommitter: Saved output of task 'attempt_local_0001_r_000000_0' to file:/tmp/hadoop-paco/tweet_69793_F27302531A18173027379E2FED29E568
12/06/27 11:36:50 INFO mapred.LocalJobRunner: reduce > reduce
12/06/27 11:36:50 INFO mapred.Task: Task 'attempt_local_0001_r_000000_0' done.
12/06/27 11:36:54 INFO flow.FlowStep: [similarity] starting step: (1/8)
12/06/27 11:36:54 INFO mapred.FileInputFormat: Total input paths to process : 1
12/06/27 11:36:54 INFO flow.FlowStep: [similarity] submitted hadoop job: job_local_0002
12/06/27 11:36:54 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:36:54 INFO io.MultiInputSplit: current split input path: file:/tmp/hadoop-paco/tweet_69793_F27302531A18173027379E2FED29E568/part-00000
12/06/27 11:36:54 INFO mapred.MapTask: numReduceTasks: 0
12/06/27 11:36:54 INFO hadoop.FlowMapper: sourcing from: TempHfs["SequenceFile[['uid', 'token']]"][tweet/69793/]
12/06/27 11:36:54 INFO hadoop.FlowMapper: sourcing from: Lfs["TextDelimited[['stop']]"]["data/en.stop"]"]
12/06/27 11:36:54 INFO hadoop.FlowMapper: sinking to: TempHfs["SequenceFile[['uid', 'token']]"][tweet_stop/23865/]
12/06/27 11:36:54 INFO collect.SpillableTupleList: attempting to load codec: org.apache.hadoop.io.compress.GzipCodec
12/06/27 11:36:54 INFO collect.SpillableTupleList: found codec: org.apache.hadoop.io.compress.GzipCodec
12/06/27 11:36:54 INFO mapred.FileInputFormat: Total input paths to process : 1
12/06/27 11:36:54 INFO collect.SpillableTupleList: attempting to load codec: org.apache.hadoop.io.compress.GzipCodec
12/06/27 11:36:54 INFO collect.SpillableTupleList: found codec: org.apache.hadoop.io.compress.GzipCodec
12/06/27 11:36:54 INFO mapred.Task: Task:attempt_local_0002_m_000000_0 is done. And is in the process of commiting
12/06/27 11:36:54 INFO mapred.LocalJobRunner:
12/06/27 11:36:54 INFO mapred.Task: Task attempt_local_0002_m_000000_0 is allowed to commit now
12/06/27 11:36:54 INFO mapred.FileOutputCommitter: Saved output of task 'attempt_local_0002_m_000000_0' to file:/tmp/hadoop-paco/tweet_stop_23865_9DB4E6D057C808620DE3A9AFBA6E9E12
12/06/27 11:36:57 INFO mapred.LocalJobRunner: file:/tmp/hadoop-paco/tweet_69793_F27302531A18173027379E2FED29E568/part-00000:0+154500
12/06/27 11:36:57 INFO mapred.Task: Task 'attempt_local_0002_m_000000_0' done.
12/06/27 11:36:59 INFO flow.FlowStep: [similarity] starting step: (3/8) output/token
12/06/27 11:36:59 INFO mapred.FileInputFormat: Total input paths to process : 1
12/06/27 11:36:59 INFO flow.FlowStep: [similarity] submitted hadoop job: job_local_0003
12/06/27 11:36:59 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:36:59 INFO io.MultiInputSplit: current split input path: file:/tmp/hadoop-paco/tweet_stop_23865_9DB4E6D057C808620DE3A9AFBA6E9E12/part-00000
12/06/27 11:36:59 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:36:59 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:36:59 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:36:59 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:36:59 INFO hadoop.FlowMapper: sourcing from: TempHfs["SequenceFile[['uid', 'token']]"][tweet_stop/23865/]
12/06/27 11:36:59 INFO hadoop.FlowMapper: sinking to: GroupBy(token)[by:[{1}:'token']]
12/06/27 11:36:59 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:36:59 INFO mapred.MapTask: Finished spill 0
12/06/27 11:36:59 INFO mapred.Task: Task:attempt_local_0003_m_000000_0 is done. And is in the process of commiting
12/06/27 11:37:02 INFO mapred.LocalJobRunner: file:/tmp/hadoop-paco/tweet_stop_23865_9DB4E6D057C808620DE3A9AFBA6E9E12/part-00000:0+138102
12/06/27 11:37:02 INFO mapred.Task: Task 'attempt_local_0003_m_000000_0' done.
12/06/27 11:37:02 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:02 INFO mapred.LocalJobRunner:
12/06/27 11:37:02 INFO mapred.Merger: Merging 1 sorted segments
12/06/27 11:37:02 INFO mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 118814 bytes
12/06/27 11:37:02 INFO mapred.LocalJobRunner:
12/06/27 11:37:02 INFO hadoop.FlowReducer: sourcing from: GroupBy(token)[by:[{1}:'token']]
12/06/27 11:37:02 INFO hadoop.FlowReducer: sinking to: Hfs["TextDelimited[[UNKNOWN]->['token', 'count']]"]["output/token"]"]
12/06/27 11:37:02 INFO mapred.Task: Task:attempt_local_0003_r_000000_0 is done. And is in the process of commiting
12/06/27 11:37:02 INFO mapred.LocalJobRunner:
12/06/27 11:37:02 INFO mapred.Task: Task attempt_local_0003_r_000000_0 is allowed to commit now
12/06/27 11:37:02 INFO mapred.FileOutputCommitter: Saved output of task 'attempt_local_0003_r_000000_0' to file:/Users/paco/src/concur/sampleapp/output/token
12/06/27 11:37:05 INFO mapred.LocalJobRunner: reduce > reduce
12/06/27 11:37:05 INFO mapred.Task: Task 'attempt_local_0003_r_000000_0' done.
12/06/27 11:37:09 INFO flow.FlowStep: [similarity] starting step: (5/8)
12/06/27 11:37:09 INFO mapred.FileInputFormat: Total input paths to process : 1
12/06/27 11:37:09 INFO flow.FlowStep: [similarity] submitted hadoop job: job_local_0004
12/06/27 11:37:09 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:09 INFO io.MultiInputSplit: current split input path: file:/tmp/hadoop-paco/tweet_stop_23865_9DB4E6D057C808620DE3A9AFBA6E9E12/part-00000
12/06/27 11:37:09 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:37:09 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:37:09 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:37:09 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:37:09 INFO hadoop.FlowMapper: sourcing from: TempHfs["SequenceFile[['uid', 'token']]"][tweet_stop/23865/]
12/06/27 11:37:09 INFO hadoop.FlowMapper: sinking to: CoGroup(inverted index)[by:[{1}:'token'][numSelfJoins:1]]
12/06/27 11:37:09 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:37:10 INFO mapred.MapTask: Finished spill 0
12/06/27 11:37:10 INFO mapred.Task: Task:attempt_local_0004_m_000000_0 is done. And is in the process of commiting
12/06/27 11:37:12 INFO mapred.LocalJobRunner: file:/tmp/hadoop-paco/tweet_stop_23865_9DB4E6D057C808620DE3A9AFBA6E9E12/part-00000:0+138102
12/06/27 11:37:12 INFO mapred.Task: Task 'attempt_local_0004_m_000000_0' done.
12/06/27 11:37:12 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:12 INFO mapred.LocalJobRunner:
12/06/27 11:37:12 INFO mapred.Merger: Merging 1 sorted segments
12/06/27 11:37:12 INFO mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 125966 bytes
12/06/27 11:37:12 INFO mapred.LocalJobRunner:
12/06/27 11:37:12 INFO hadoop.FlowReducer: sourcing from: CoGroup(inverted index)[by:[{1}:'token'][numSelfJoins:1]]
12/06/27 11:37:12 INFO hadoop.FlowReducer: sinking to: TempHfs["SequenceFile[['uid1', 'uid2', 'token']]"][uid_common/2628/]
12/06/27 11:37:12 INFO collect.SpillableTupleList: attempting to load codec: org.apache.hadoop.io.compress.GzipCodec
12/06/27 11:37:12 INFO collect.SpillableTupleList: found codec: org.apache.hadoop.io.compress.GzipCodec
12/06/27 11:37:13 INFO mapred.Task: Task:attempt_local_0004_r_000000_0 is done. And is in the process of commiting
12/06/27 11:37:13 INFO mapred.LocalJobRunner:
12/06/27 11:37:13 INFO mapred.Task: Task attempt_local_0004_r_000000_0 is allowed to commit now
12/06/27 11:37:13 INFO mapred.FileOutputCommitter: Saved output of task 'attempt_local_0004_r_000000_0' to file:/tmp/hadoop-paco/uid_common_2628_001A17099FB5731A3BE1D54D9FCDCDC6
12/06/27 11:37:15 INFO mapred.LocalJobRunner: reduce > reduce
12/06/27 11:37:15 INFO mapred.Task: Task 'attempt_local_0004_r_000000_0' done.
12/06/27 11:37:19 INFO flow.FlowStep: [similarity] starting step: (4/8)
12/06/27 11:37:19 INFO mapred.FileInputFormat: Total input paths to process : 1
12/06/27 11:37:19 INFO flow.FlowStep: [similarity] submitted hadoop job: job_local_0005
12/06/27 11:37:19 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:19 INFO io.MultiInputSplit: current split input path: file:/tmp/hadoop-paco/tweet_stop_23865_9DB4E6D057C808620DE3A9AFBA6E9E12/part-00000
12/06/27 11:37:19 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:37:19 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:37:19 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:37:19 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:37:19 INFO hadoop.FlowMapper: sourcing from: TempHfs["SequenceFile[['uid', 'token']]"][tweet_stop/23865/]
12/06/27 11:37:19 INFO hadoop.FlowMapper: sinking to: GroupBy(count)[by:[{1}:'uid']]
12/06/27 11:37:19 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:37:19 INFO mapred.MapTask: Finished spill 0
12/06/27 11:37:19 INFO mapred.Task: Task:attempt_local_0005_m_000000_0 is done. And is in the process of commiting
12/06/27 11:37:22 INFO mapred.LocalJobRunner: file:/tmp/hadoop-paco/tweet_stop_23865_9DB4E6D057C808620DE3A9AFBA6E9E12/part-00000:0+138102
12/06/27 11:37:22 INFO mapred.Task: Task 'attempt_local_0005_m_000000_0' done.
12/06/27 11:37:22 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:22 INFO mapred.LocalJobRunner:
12/06/27 11:37:22 INFO mapred.Merger: Merging 1 sorted segments
12/06/27 11:37:22 INFO mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 118814 bytes
12/06/27 11:37:22 INFO mapred.LocalJobRunner:
12/06/27 11:37:22 INFO hadoop.FlowReducer: sourcing from: GroupBy(count)[by:[{1}:'uid']]
12/06/27 11:37:22 INFO hadoop.FlowReducer: sinking to: TempHfs["SequenceFile[['uid', 'token_count']]"][count/24419/]
12/06/27 11:37:22 INFO mapred.Task: Task:attempt_local_0005_r_000000_0 is done. And is in the process of commiting
12/06/27 11:37:22 INFO mapred.LocalJobRunner:
12/06/27 11:37:22 INFO mapred.Task: Task attempt_local_0005_r_000000_0 is allowed to commit now
12/06/27 11:37:22 INFO mapred.FileOutputCommitter: Saved output of task 'attempt_local_0005_r_000000_0' to file:/tmp/hadoop-paco/count_24419_79ABB1180EFBA760ED3C75A7A673ED6E
12/06/27 11:37:25 INFO mapred.LocalJobRunner: reduce > reduce
12/06/27 11:37:25 INFO mapred.Task: Task 'attempt_local_0005_r_000000_0' done.
12/06/27 11:37:29 INFO flow.FlowStep: [similarity] starting step: (8/8)
12/06/27 11:37:29 INFO mapred.FileInputFormat: Total input paths to process : 1
12/06/27 11:37:29 INFO flow.FlowStep: [similarity] submitted hadoop job: job_local_0006
12/06/27 11:37:29 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:29 INFO io.MultiInputSplit: current split input path: file:/tmp/hadoop-paco/uid_common_2628_001A17099FB5731A3BE1D54D9FCDCDC6/part-00000
12/06/27 11:37:29 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:37:29 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:37:29 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:37:29 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:37:29 INFO hadoop.FlowMapper: sourcing from: TempHfs["SequenceFile[['uid1', 'uid2', 'token']]"][uid_common/2628/]
12/06/27 11:37:29 INFO hadoop.FlowMapper: sinking to: GroupBy(uid common)[by:[{2}:'uid1', 'uid2']]
12/06/27 11:37:30 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:37:30 INFO mapred.MapTask: Finished spill 0
12/06/27 11:37:31 INFO mapred.Task: Task:attempt_local_0006_m_000000_0 is done. And is in the process of commiting
12/06/27 11:37:32 INFO mapred.LocalJobRunner: file:/tmp/hadoop-paco/uid_common_2628_001A17099FB5731A3BE1D54D9FCDCDC6/part-00000:0+1003045
12/06/27 11:37:32 INFO mapred.LocalJobRunner: file:/tmp/hadoop-paco/uid_common_2628_001A17099FB5731A3BE1D54D9FCDCDC6/part-00000:0+1003045
12/06/27 11:37:32 INFO mapred.Task: Task 'attempt_local_0006_m_000000_0' done.
12/06/27 11:37:32 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:32 INFO mapred.LocalJobRunner:
12/06/27 11:37:32 INFO mapred.Merger: Merging 1 sorted segments
12/06/27 11:37:32 INFO mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 918793 bytes
12/06/27 11:37:32 INFO mapred.LocalJobRunner:
12/06/27 11:37:32 INFO hadoop.FlowReducer: sourcing from: GroupBy(uid common)[by:[{2}:'uid1', 'uid2']]
12/06/27 11:37:32 INFO hadoop.FlowReducer: sinking to: TempHfs["SequenceFile[['uid1', 'uid2', 'common']]"][uid_common/33548/]
12/06/27 11:37:33 INFO mapred.Task: Task:attempt_local_0006_r_000000_0 is done. And is in the process of commiting
12/06/27 11:37:33 INFO mapred.LocalJobRunner:
12/06/27 11:37:33 INFO mapred.Task: Task attempt_local_0006_r_000000_0 is allowed to commit now
12/06/27 11:37:33 INFO mapred.FileOutputCommitter: Saved output of task 'attempt_local_0006_r_000000_0' to file:/tmp/hadoop-paco/uid_common_33548_19C14E5F29BBBEEED9DB11CFA454B0D0
12/06/27 11:37:35 INFO mapred.LocalJobRunner: reduce > reduce
12/06/27 11:37:35 INFO mapred.Task: Task 'attempt_local_0006_r_000000_0' done.
12/06/27 11:37:39 INFO flow.FlowStep: [similarity] starting step: (7/8)
12/06/27 11:37:39 INFO mapred.FileInputFormat: Total input paths to process : 1
12/06/27 11:37:39 INFO mapred.FileInputFormat: Total input paths to process : 1
12/06/27 11:37:39 INFO flow.FlowStep: [similarity] submitted hadoop job: job_local_0007
12/06/27 11:37:39 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:39 INFO io.MultiInputSplit: current split input path: file:/tmp/hadoop-paco/uid_common_33548_19C14E5F29BBBEEED9DB11CFA454B0D0/part-00000
12/06/27 11:37:39 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:37:39 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:37:39 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:37:39 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:37:39 INFO hadoop.FlowMapper: sourcing from: TempHfs["SequenceFile[['uid1', 'uid2', 'common']]"][uid_common/33548/]
12/06/27 11:37:39 INFO hadoop.FlowMapper: sinking to: CoGroup(count*uid common)[by:count:[{1}:'uid']uid common:[{1}:'uid1']]
12/06/27 11:37:39 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:37:39 INFO mapred.MapTask: Finished spill 0
12/06/27 11:37:39 INFO mapred.Task: Task:attempt_local_0007_m_000000_0 is done. And is in the process of commiting
12/06/27 11:37:42 INFO mapred.LocalJobRunner: file:/tmp/hadoop-paco/uid_common_33548_19C14E5F29BBBEEED9DB11CFA454B0D0/part-00000:0+11785
12/06/27 11:37:42 INFO mapred.Task: Task 'attempt_local_0007_m_000000_0' done.
12/06/27 11:37:42 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:42 INFO io.MultiInputSplit: current split input path: file:/tmp/hadoop-paco/count_24419_79ABB1180EFBA760ED3C75A7A673ED6E/part-00000
12/06/27 11:37:42 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:37:42 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:37:42 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:37:42 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:37:42 INFO hadoop.FlowMapper: sourcing from: TempHfs["SequenceFile[['uid', 'token_count']]"][count/24419/]
12/06/27 11:37:42 INFO hadoop.FlowMapper: sinking to: CoGroup(count*uid common)[by:count:[{1}:'uid']uid common:[{1}:'uid1']]
12/06/27 11:37:42 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:37:42 INFO mapred.MapTask: Finished spill 0
12/06/27 11:37:42 INFO mapred.Task: Task:attempt_local_0007_m_000001_0 is done. And is in the process of commiting
12/06/27 11:37:45 INFO mapred.LocalJobRunner: file:/tmp/hadoop-paco/count_24419_79ABB1180EFBA760ED3C75A7A673ED6E/part-00000:0+4876
12/06/27 11:37:45 INFO mapred.Task: Task 'attempt_local_0007_m_000001_0' done.
12/06/27 11:37:45 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:45 INFO mapred.LocalJobRunner:
12/06/27 11:37:45 INFO mapred.Merger: Merging 2 sorted segments
12/06/27 11:37:45 INFO mapred.Merger: Down to the last merge-pass, with 2 segments left of total size: 15104 bytes
12/06/27 11:37:45 INFO mapred.LocalJobRunner:
12/06/27 11:37:45 INFO hadoop.FlowReducer: sourcing from: CoGroup(count*uid common)[by:count:[{1}:'uid']uid common:[{1}:'uid1']]
12/06/27 11:37:45 INFO hadoop.FlowReducer: sinking to: TempHfs["SequenceFile[['uid1', 'uid2', 'common', 'token_count1']]"][common/43066/]
12/06/27 11:37:45 INFO collect.SpillableTupleList: attempting to load codec: org.apache.hadoop.io.compress.GzipCodec
12/06/27 11:37:45 INFO collect.SpillableTupleList: found codec: org.apache.hadoop.io.compress.GzipCodec
12/06/27 11:37:45 INFO mapred.Task: Task:attempt_local_0007_r_000000_0 is done. And is in the process of commiting
12/06/27 11:37:45 INFO mapred.LocalJobRunner:
12/06/27 11:37:45 INFO mapred.Task: Task attempt_local_0007_r_000000_0 is allowed to commit now
12/06/27 11:37:45 INFO mapred.FileOutputCommitter: Saved output of task 'attempt_local_0007_r_000000_0' to file:/tmp/hadoop-paco/common_43066_F4BCEA4533F627819B453735CC3ED2BD
12/06/27 11:37:48 INFO mapred.LocalJobRunner: reduce > reduce
12/06/27 11:37:48 INFO mapred.Task: Task 'attempt_local_0007_r_000000_0' done.
12/06/27 11:37:49 INFO flow.FlowStep: [similarity] starting step: (6/8) output/similarity
12/06/27 11:37:49 INFO mapred.FileInputFormat: Total input paths to process : 1
12/06/27 11:37:49 INFO mapred.FileInputFormat: Total input paths to process : 1
12/06/27 11:37:49 INFO flow.FlowStep: [similarity] submitted hadoop job: job_local_0008
12/06/27 11:37:49 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:49 INFO io.MultiInputSplit: current split input path: file:/tmp/hadoop-paco/common_43066_F4BCEA4533F627819B453735CC3ED2BD/part-00000
12/06/27 11:37:49 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:37:49 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:37:49 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:37:49 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:37:50 INFO hadoop.FlowMapper: sourcing from: TempHfs["SequenceFile[['uid1', 'uid2', 'common', 'token_count1']]"][common/43066/]
12/06/27 11:37:50 INFO hadoop.FlowMapper: sinking to: CoGroup(similarity)[by:count:[{1}:'uid']common:[{1}:'uid2']]
12/06/27 11:37:50 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:37:50 INFO mapred.MapTask: Finished spill 0
12/06/27 11:37:50 INFO mapred.Task: Task:attempt_local_0008_m_000000_0 is done. And is in the process of commiting
12/06/27 11:37:52 INFO mapred.LocalJobRunner: file:/tmp/hadoop-paco/common_43066_F4BCEA4533F627819B453735CC3ED2BD/part-00000:0+12352
12/06/27 11:37:52 INFO mapred.LocalJobRunner: file:/tmp/hadoop-paco/common_43066_F4BCEA4533F627819B453735CC3ED2BD/part-00000:0+12352
12/06/27 11:37:52 INFO mapred.Task: Task 'attempt_local_0008_m_000000_0' done.
12/06/27 11:37:52 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:52 INFO io.MultiInputSplit: current split input path: file:/tmp/hadoop-paco/count_24419_79ABB1180EFBA760ED3C75A7A673ED6E/part-00000
12/06/27 11:37:52 INFO mapred.MapTask: numReduceTasks: 1
12/06/27 11:37:52 INFO mapred.MapTask: io.sort.mb = 100
12/06/27 11:37:53 INFO mapred.MapTask: data buffer = 79691776/99614720
12/06/27 11:37:53 INFO mapred.MapTask: record buffer = 262144/327680
12/06/27 11:37:53 INFO hadoop.FlowMapper: sourcing from: TempHfs["SequenceFile[['uid', 'token_count']]"][count/24419/]
12/06/27 11:37:53 INFO hadoop.FlowMapper: sinking to: CoGroup(similarity)[by:count:[{1}:'uid']common:[{1}:'uid2']]
12/06/27 11:37:53 INFO mapred.MapTask: Starting flush of map output
12/06/27 11:37:53 INFO mapred.MapTask: Finished spill 0
12/06/27 11:37:53 INFO mapred.Task: Task:attempt_local_0008_m_000001_0 is done. And is in the process of commiting
12/06/27 11:37:55 INFO mapred.LocalJobRunner: file:/tmp/hadoop-paco/count_24419_79ABB1180EFBA760ED3C75A7A673ED6E/part-00000:0+4876
12/06/27 11:37:55 INFO mapred.Task: Task 'attempt_local_0008_m_000001_0' done.
12/06/27 11:37:55 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/06/27 11:37:55 INFO mapred.LocalJobRunner:
12/06/27 11:37:55 INFO mapred.Merger: Merging 2 sorted segments
12/06/27 11:37:55 INFO mapred.Merger: Down to the last merge-pass, with 2 segments left of total size: 15651 bytes
12/06/27 11:37:55 INFO mapred.LocalJobRunner:
12/06/27 11:37:56 INFO hadoop.FlowReducer: sourcing from: CoGroup(similarity)[by:count:[{1}:'uid']common:[{1}:'uid2']]
12/06/27 11:37:56 INFO hadoop.FlowReducer: sinking to: Hfs["TextDelimited[[UNKNOWN]->['uid', 'recommend_uid', 'similarity']]"]["output/similarity"]"]
12/06/27 11:37:56 INFO collect.SpillableTupleList: attempting to load codec: org.apache.hadoop.io.compress.GzipCodec
12/06/27 11:37:56 INFO collect.SpillableTupleList: found codec: org.apache.hadoop.io.compress.GzipCodec
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['Baileetwx', 'Ayannadxr', 'Baileetwx', '12', '24', '12']
['Breannaqfe', 'Baileetwx', 'Breannaqfe', '12', '12', '12']
['Breannaqfe', 'Ayannadxr', 'Breannaqfe', '12', '24', '12']
['ClosingBellNews', 'carbonfiberxrm', 'ClosingBellNews', '4', '47', '16']
['Corinnexaz', 'Breannaqfe', 'Corinnexaz', '12', '12', '12']
['Corinnexaz', 'Ayannadxr', 'Corinnexaz', '12', '24', '12']
['Corinnexaz', 'Baileetwx', 'Corinnexaz', '12', '12', '12']
['DJFunkyGrrL', 'carbonfiberxrm', 'DJFunkyGrrL', '4', '47', '45']
['DJFunkyGrrL', 'ClosingBellNews', 'DJFunkyGrrL', '4', '16', '45']
['DJFunkyGrrL', 'CloudStocks', 'DJFunkyGrrL', '6', '55', '45']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['DowJonesIndexes', 'BeursIndex', 'DowJonesIndexes', '6', '11', '6']
['ElmoreNicole', 'DJFunkyGrrL', 'ElmoreNicole', '4', '45', '11']
['EsNeey', 'alexiolo_', 'EsNeey', '15', '16', '19']
['Essy_M', 'BiznComps', 'Essy_M', '4', '5', '5']
['GregWHoward', 'ClosingBellNews', 'GregWHoward', '4', '16', '36']
['GregWHoward', 'CloudStocks', 'GregWHoward', '4', '55', '36']
['GregWHoward', 'DJFunkyGrrL', 'GregWHoward', '4', '45', '36']
['GregWHoward', 'fixedratebonds', 'GregWHoward', '6', '193', '36']
['HeftyStocks', 'fixedratebonds', 'HeftyStocks', '9', '193', '14']
['InfoEstate', 'DavidDginger', 'InfoEstate', '7', '8', '12']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['IsabelSignals', 'dow_live', 'IsabelSignals', '4', '69', '76']
['JJlOpEz_', 'EsNeey', 'JJlOpEz_', '18', '19', '18']
['JJlOpEz_', 'alexiolo_', 'JJlOpEz_', '15', '16', '18']
['JWGreen_', 'DowJonesIndexes', 'JWGreen_', '6', '6', '7']
['JWGreen_', 'BeursIndex', 'JWGreen_', '6', '11', '7']
['Justicezhk', 'Baileetwx', 'Justicezhk', '12', '12', '12']
['Justicezhk', 'Corinnexaz', 'Justicezhk', '12', '12', '12']
['Justicezhk', 'Breannaqfe', 'Justicezhk', '12', '12', '12']
['Justicezhk', 'Ayannadxr', 'Justicezhk', '12', '24', '12']
['Justinehbs', 'Justicezhk', 'Justinehbs', '12', '12', '12']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['Justinehbs', 'Corinnexaz', 'Justinehbs', '12', '12', '12']
['Justinehbs', 'Ayannadxr', 'Justinehbs', '12', '24', '12']
['Justinehbs', 'Baileetwx', 'Justinehbs', '12', '12', '12']
['Justinehbs', 'Breannaqfe', 'Justinehbs', '12', '12', '12']
['Karliusi', 'Breannaqfe', 'Karliusi', '12', '12', '12']
['Karliusi', 'Justinehbs', 'Karliusi', '12', '12', '12']
['Karliusi', 'Justicezhk', 'Karliusi', '12', '12', '12']
['Karliusi', 'Ayannadxr', 'Karliusi', '12', '24', '12']
['Karliusi', 'Baileetwx', 'Karliusi', '12', '12', '12']
['Karliusi', 'Corinnexaz', 'Karliusi', '12', '12', '12']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['Kirstenpcr', 'Justicezhk', 'Kirstenpcr', '12', '12', '12']
['Kirstenpcr', 'Breannaqfe', 'Kirstenpcr', '12', '12', '12']
['Kirstenpcr', 'Corinnexaz', 'Kirstenpcr', '12', '12', '12']
['Kirstenpcr', 'Justinehbs', 'Kirstenpcr', '12', '12', '12']
['Kirstenpcr', 'Karliusi', 'Kirstenpcr', '12', '12', '12']
['Kirstenpcr', 'Ayannadxr', 'Kirstenpcr', '12', '24', '12']
['Kirstenpcr', 'Baileetwx', 'Kirstenpcr', '12', '12', '12']
['NHRvoices', 'EdStannardNHR', 'NHRvoices', '9', '9', '9']
['NiciElmore', 'ElmoreNicole', 'NiciElmore', '10', '11', '11']
['NiciElmore', 'DJFunkyGrrL', 'NiciElmore', '4', '45', '11']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['OilEnergy', 'judyth_piazza', 'OilEnergy', '6', '35', '12']
['OilEnergy', 'Finance_Wire', 'OilEnergy', '6', '50', '12']
['OilEnergy', 'marketmavenz', 'OilEnergy', '6', '26', '12']
['OilShaleGas', 'nasdaq_live', 'OilShaleGas', '4', '70', '6']
['Paul_Schatz', 'EdStannardNHR', 'Paul_Schatz', '8', '9', '33']
['Paul_Schatz', 'fixedratebonds', 'Paul_Schatz', '4', '193', '33']
['Paul_Schatz', 'NHRvoices', 'Paul_Schatz', '8', '9', '33']
['PennyDOW1', 'fixedratebonds', 'PennyDOW1', '9', '193', '14']
['PennyDOW1', 'HeftyStocks', 'PennyDOW1', '14', '14', '14']
['Pennystocks24', 'livesensexstock', 'Pennystocks24', '12', '77', '115']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['Pennystocks24', 'cnnback', 'Pennystocks24', '7', '24', '115']
['Pennystocks24', 'IsabelSignals', 'Pennystocks24', '6', '76', '115']
['Pennystocks24', 'nasdaq_live', 'Pennystocks24', '9', '70', '115']
['Pennystocks24', 'dow_live', 'Pennystocks24', '15', '69', '115']
['Pennystocks24', 'fixedratebonds', 'Pennystocks24', '7', '193', '115']
['Pennystocks24', 'pennystock_tips', 'Pennystocks24', '5', '19', '115']
['Pennystocks24', 'DJFunkyGrrL', 'Pennystocks24', '4', '45', '115']
['Pennystocks24', 'GreatStockAlert', 'Pennystocks24', '6', '15', '115']
['PinkStocks101', 'PennyDOW1', 'PinkStocks101', '14', '14', '14']
['PinkStocks101', 'fixedratebonds', 'PinkStocks101', '9', '193', '14']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['PinkStocks101', 'HeftyStocks', 'PinkStocks101', '14', '14', '14']
['PlaygroundPosts', 'nasdaq_live', 'PlaygroundPosts', '5', '70', '32']
['PlaygroundPosts', 'dow_live', 'PlaygroundPosts', '5', '69', '32']
['PlaygroundPosts', 'Pennystocks24', 'PlaygroundPosts', '4', '115', '32']
['PlaygroundPosts', 'DJFunkyGrrL', 'PlaygroundPosts', '5', '45', '32']
['PlaygroundPosts', 'livesensexstock', 'PlaygroundPosts', '5', '77', '32']
['PlaygroundPosts', 'ClosingBellNews', 'PlaygroundPosts', '4', '16', '32']
['STOCKSTIPS', 'pennystock_tips', 'STOCKSTIPS', '5', '19', '252']
['STOCKSTIPS', 'dow_live', 'STOCKSTIPS', '8', '69', '252']
['STOCKSTIPS', 'fixedratebonds', 'STOCKSTIPS', '12', '193', '252']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['STOCKSTIPS', 'CloudStocks', 'STOCKSTIPS', '8', '55', '252']
['STOCKSTIPS', 'dnzStockInvest', 'STOCKSTIPS', '5', '54', '252']
['STOCKSTIPS', 'ClosingBellNews', 'STOCKSTIPS', '4', '16', '252']
['STOCKSTIPS', 'Pennystocks24', 'STOCKSTIPS', '21', '115', '252']
['STOCKSTIPS', 'PlaygroundPosts', 'STOCKSTIPS', '4', '32', '252']
['STOCKSTIPS', 'stocksmarket_in', 'STOCKSTIPS', '11', '85', '252']
['STOCKSTIPS', 'cnnback', 'STOCKSTIPS', '5', '24', '252']
['STOCKSTIPS', 'BusinessRodrigo', 'STOCKSTIPS', '5', '22', '252']
['STOCKSTIPS', 'GregWHoward', 'STOCKSTIPS', '4', '36', '252']
['STOCKSTIPS', 'livesensexstock', 'STOCKSTIPS', '19', '77', '252']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['STOCKSTIPS', 'DJFunkyGrrL', 'STOCKSTIPS', '7', '45', '252']
['STOCKSTIPS', 'IsabelSignals', 'STOCKSTIPS', '11', '76', '252']
['STOCKSTIPS', 'JarradSolomon', 'STOCKSTIPS', '4', '17', '252']
['STOCKSTIPS', 'nasdaq_live', 'STOCKSTIPS', '9', '70', '252']
['STOCKSTIPS', 'ASX_small_caps', 'STOCKSTIPS', '4', '14', '252']
['Salman_Chaudhri', 'fixedratebonds', 'Salman_Chaudhri', '4', '193', '13']
['Salman_Chaudhri', 'DJFunkyGrrL', 'Salman_Chaudhri', '6', '45', '13']
['Shannonkox', 'Baileetwx', 'Shannonkox', '12', '12', '12']
['Shannonkox', 'Kirstenpcr', 'Shannonkox', '12', '12', '12']
['Shannonkox', 'Justinehbs', 'Shannonkox', '12', '12', '12']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['Shannonkox', 'Breannaqfe', 'Shannonkox', '12', '12', '12']
['Shannonkox', 'Ayannadxr', 'Shannonkox', '12', '24', '12']
['Shannonkox', 'Justicezhk', 'Shannonkox', '12', '12', '12']
['Shannonkox', 'Karliusi', 'Shannonkox', '12', '12', '12']
['Shannonkox', 'Corinnexaz', 'Shannonkox', '12', '12', '12']
['SirPaulsen', 'fixedratebonds', 'SirPaulsen', '4', '193', '18']
['StockIndexes', 'BeursIndex', 'StockIndexes', '6', '11', '16']
['StockIndexes', 'DowJonesIndexes', 'StockIndexes', '6', '6', '16']
['StockIndexes', 'fixedratebonds', 'StockIndexes', '8', '193', '16']
['StockIndexes', 'JWGreen_', 'StockIndexes', '7', '7', '16']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['StockTweeets', 'LifeIsTooCrazy', 'StockTweeets', '18', '18', '18']
['TOPinMarkets', 'fixedratebonds', 'TOPinMarkets', '4', '193', '11']
['TechStockInvest', 'DJFunkyGrrL', 'TechStockInvest', '5', '45', '13']
['TechStockInvest', 'fixedratebonds', 'TechStockInvest', '4', '193', '13']
['TechStockInvest', 'mradamdavies', 'TechStockInvest', '4', '11', '13']
['TechStockInvest', 'STOCKSTIPS', 'TechStockInvest', '4', '252', '13']
['TitanBlackHK', 'LifeIsTooCrazy', 'TitanBlackHK', '18', '18', '18']
['TitanBlackHK', 'StockTweeets', 'TitanBlackHK', '18', '18', '18']
['TonyStreet216', 'dbertauche', 'TonyStreet216', '7', '19', '9']
['Tradesight', 'livesensexstock', 'Tradesight', '4', '77', '9']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['Tradesight', 'fixedratebonds', 'Tradesight', '4', '193', '9']
['TradingAcademy', 'rainmakerOTA', 'TradingAcademy', '14', '15', '14']
['TradingGuru', 'DJFunkyGrrL', 'TradingGuru', '4', '45', '15']
['TweetsEurope', '247WallStreet', 'TweetsEurope', '20', '22', '22']
['ValueSecurities', 'stocksmarket_in', 'ValueSecurities', '5', '85', '29']
['ValueSecurities', 'livesensexstock', 'ValueSecurities', '4', '77', '29']
['ValueSecurities', 'STOCKSTIPS', 'ValueSecurities', '4', '252', '29']
['ValueSecurities', 'Pennystocks24', 'ValueSecurities', '4', '115', '29']
['ValueSecurities', 'CloudStocks', 'ValueSecurities', '4', '55', '29']
['ValueSecurities', 'DJFunkyGrrL', 'ValueSecurities', '6', '45', '29']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['ValueSecurities', 'nasdaq_live', 'ValueSecurities', '4', '70', '29']
['ValueSecurities', 'dow_live', 'ValueSecurities', '4', '69', '29']
['ValueSecurities', 'arohan', 'ValueSecurities', '5', '27', '29']
['ValueSecurities', 'tradepips', 'ValueSecurities', '6', '171', '29']
['ValueStockGuide', 'nasdaq_live', 'ValueStockGuide', '4', '70', '14']
['ValueStockGuide', 'ValueSecurities', 'ValueStockGuide', '5', '29', '14']
['ValueStockGuide', 'arohan', 'ValueStockGuide', '13', '27', '14']
['ValueStockGuide', 'dow_live', 'ValueStockGuide', '5', '69', '14']
['ValueStocksNow', 'InfoEstate', 'ValueStocksNow', '6', '12', '20']
['ValueStocksNow', 'fixedratebonds', 'ValueStocksNow', '5', '193', '20']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['ValueStocksNow', 'DavidDginger', 'ValueStocksNow', '5', '8', '20']
['ValuedMerchants', 'Salman_Chaudhri', 'ValuedMerchants', '4', '13', '13']
['ValuedMerchants', 'DJFunkyGrrL', 'ValuedMerchants', '4', '45', '13']
['ValuedMerchants', 'STOCKSTIPS', 'ValuedMerchants', '4', '252', '13']
['VegasBiLL', 'STOCKSTIPS', 'VegasBiLL', '4', '252', '11']
['WyldTop10', '247WallStreet', 'WyldTop10', '20', '22', '22']
['WyldTop10', 'TweetsEurope', 'WyldTop10', '20', '22', '22']
['dow_live', 'ClosingBellNews', 'dow_live', '4', '16', '69']
['dow_live', 'cnnback', 'dow_live', '6', '24', '69']
['dow_live', 'arohan', 'dow_live', '5', '27', '69']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['estellerivers', 'AllFinance', 'estellerivers', '5', '13', '6']
['fixedratebonds', 'ASX_small_caps', 'fixedratebonds', '4', '14', '193']
['fixedratebonds', 'AlgoTradingBlog', 'fixedratebonds', '4', '14', '193']
['fixedratebonds', 'FinancialReview', 'fixedratebonds', '4', '10', '193']
['fixedratebonds', 'cnnback', 'fixedratebonds', '5', '24', '193']
['fixedratebonds', 'crushpennystock', 'fixedratebonds', '5', '15', '193']
['fixedratebonds', 'dow_live', 'fixedratebonds', '6', '69', '193']
['fixedratebonds', 'DJFunkyGrrL', 'fixedratebonds', '4', '45', '193']
['fixedratebonds', 'CloudStocks', 'fixedratebonds', '6', '55', '193']
['fixedratebonds', 'BusinessRodrigo', 'fixedratebonds', '4', '22', '193']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['fixedratebonds', 'BeursIndex', 'fixedratebonds', '4', '11', '193']
['greenietea', '8securities', 'greenietea', '8', '8', '8']
['howdytweet', 'fatmattbrown', 'howdytweet', '12', '14', '14']
['judyth_piazza', 'ChelseaHofland', 'judyth_piazza', '17', '17', '35']
['judyth_piazza', 'Finance_Wire', 'judyth_piazza', '10', '50', '35']
['livesensexstock', 'fixedratebonds', 'livesensexstock', '4', '193', '77']
['livesensexstock', 'IsabelSignals', 'livesensexstock', '10', '76', '77']
['livesensexstock', 'DJFunkyGrrL', 'livesensexstock', '5', '45', '77']
['livesensexstock', 'dow_live', 'livesensexstock', '7', '69', '77']
['macktrader', 'howdytweet', 'macktrader', '12', '14', '14']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['macktrader', 'fatmattbrown', 'macktrader', '12', '14', '14']
['marketmavenz', 'judyth_piazza', 'marketmavenz', '18', '35', '26']
['marketmavenz', 'Finance_Wire', 'marketmavenz', '10', '50', '26']
['maxwalters', 'fatmattbrown', 'maxwalters', '7', '14', '8']
['maxwalters', 'macktrader', 'maxwalters', '7', '14', '8']
['maxwalters', 'howdytweet', 'maxwalters', '7', '14', '8']
['meloncholyflour', 'judyth_piazza', 'meloncholyflour', '17', '35', '17']
['meloncholyflour', 'ChelseaHofland', 'meloncholyflour', '17', '17', '17']
['mradamdavies', 'fixedratebonds', 'mradamdavies', '4', '193', '11']
['mradamdavies', 'DJFunkyGrrL', 'mradamdavies', '5', '45', '11']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['msgarvin', 'fixedratebonds', 'msgarvin', '5', '193', '15']
['msgarvin', 'crushpennystock', 'msgarvin', '14', '15', '15']
['nasdaq_live', 'livesensexstock', 'nasdaq_live', '11', '77', '70']
['nasdaq_live', 'dow_live', 'nasdaq_live', '15', '69', '70']
['nasdaq_live', 'ashlysassy', 'nasdaq_live', '4', '11', '70']
['nasdaq_live', 'arohan', 'nasdaq_live', '4', '27', '70']
['nasdaq_live', 'DJFunkyGrrL', 'nasdaq_live', '4', '45', '70']
['nasdaq_live', 'ClosingBellNews', 'nasdaq_live', '4', '16', '70']
['onlyonecent', 'DJFunkyGrrL', 'onlyonecent', '4', '45', '9']
['pennystock_tips', 'GregWHoward', 'pennystock_tips', '5', '36', '19']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['pennystock_tips', 'dow_live', 'pennystock_tips', '4', '69', '19']
['pennystock_tips', 'livesensexstock', 'pennystock_tips', '4', '77', '19']
['pennystock_tips', 'carbonfiberxrm', 'pennystock_tips', '7', '47', '19']
['pennystock_tips', 'nasdaq_live', 'pennystock_tips', '4', '70', '19']
['pennystock_tips', 'ClosingBellNews', 'pennystock_tips', '4', '16', '19']
['pilliho', 'Pennystocks24', 'pilliho', '13', '115', '16']
['qwe3asd9', 'AllFinance', 'qwe3asd9', '5', '13', '7']
['qwe3asd9', 'estellerivers', 'qwe3asd9', '5', '6', '7']
['redostoneage', 'fixedratebonds', 'redostoneage', '4', '193', '17']
['stockscommentar', 'OilEnergy', 'stockscommentar', '6', '12', '37']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['stockscommentar', 'judyth_piazza', 'stockscommentar', '17', '35', '37']
['stockscommentar', 'marketmavenz', 'stockscommentar', '17', '26', '37']
['stockscommentar', 'mycatbrenda', 'stockscommentar', '19', '20', '37']
['stockscommentar', 'Finance_Wire', 'stockscommentar', '10', '50', '37']
['stocksmarket_in', 'cnnback', 'stocksmarket_in', '4', '24', '85']
['stocksmarket_in', 'Edelweissonline', 'stocksmarket_in', '4', '8', '85']
['stocksmarket_in', 'dow_live', 'stocksmarket_in', '4', '69', '85']
['stocksmarket_in', 'CloudStocks', 'stocksmarket_in', '4', '55', '85']
['stocksmarket_in', 'nasdaq_live', 'stocksmarket_in', '5', '70', '85']
['stocksmarket_in', 'fixedratebonds', 'stocksmarket_in', '6', '193', '85']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['stocksmarket_in', 'livesensexstock', 'stocksmarket_in', '6', '77', '85']
['the_anna_banana', 'howdytweet', 'the_anna_banana', '8', '14', '9']
['the_anna_banana', 'fatmattbrown', 'the_anna_banana', '8', '14', '9']
['the_anna_banana', 'macktrader', 'the_anna_banana', '8', '14', '9']
['topjobs4all', 'STOCKSTIPS', 'topjobs4all', '7', '252', '67']
['topjobs4all', 'fixedratebonds', 'topjobs4all', '5', '193', '67']
['topjobs4all', 'livesensexstock', 'topjobs4all', '4', '77', '67']
['traddrtweets', 'howdytweet', 'traddrtweets', '12', '14', '14']
['traddrtweets', 'fatmattbrown', 'traddrtweets', '12', '14', '14']
['traddrtweets', 'macktrader', 'traddrtweets', '12', '14', '14']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['traddrtweets', 'the_anna_banana', 'traddrtweets', '8', '9', '14']
['traddrtweets', 'maxwalters', 'traddrtweets', '7', '8', '14']
['tradepips', 'GregWHoward', 'tradepips', '5', '36', '171']
['tradepips', 'STOCKSTIPS', 'tradepips', '9', '252', '171']
['tradepips', 'OTCEquity', 'tradepips', '4', '16', '171']
['tradepips', 'pennystock_tips', 'tradepips', '4', '19', '171']
['tradepips', 'Paul_Schatz', 'tradepips', '8', '33', '171']
['tradepips', 'fixedratebonds', 'tradepips', '9', '193', '171']
['tradepips', 'marketmavenz', 'tradepips', '4', '26', '171']
['tradepips', 'jl_fxcharts', 'tradepips', '4', '14', '171']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['tradepips', 'PlaygroundPosts', 'tradepips', '4', '32', '171']
['tradepips', 'AAII_CI', 'tradepips', '4', '17', '171']
['tradepips', 'Ayannadxr', 'tradepips', '4', '24', '171']
['tradepips', 'ASX_small_caps', 'tradepips', '4', '14', '171']
['tradepips', 'BusinessRodrigo', 'tradepips', '4', '22', '171']
['tradepips', 'stocksmarket_in', 'tradepips', '4', '85', '171']
['tradepips', 'CloudStocks', 'tradepips', '4', '55', '171']
['tradingeveryday', 'livesensexstock', 'tradingeveryday', '4', '77', '13']
['tradingeveryday', 'dow_live', 'tradingeveryday', '4', '69', '13']
['tradingeveryday', 'Pennystocks24', 'tradingeveryday', '4', '115', '13']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['tradingeveryday', 'stocksmarket_in', 'tradingeveryday', '5', '85', '13']
['x_stocks', 'Paul_Schatz', 'x_stocks', '4', '33', '62']
['x_stocks', 'PlaygroundPosts', 'x_stocks', '5', '32', '62']
['x_stocks', 'STOCKSTIPS', 'x_stocks', '6', '252', '62']
['x_stocks', 'Salman_Chaudhri', 'x_stocks', '4', '13', '62']
['x_stocks', 'TechStockInvest', 'x_stocks', '5', '13', '62']
['x_stocks', 'VegasBiLL', 'x_stocks', '5', '11', '62']
['x_stocks', 'bonafideB', 'x_stocks', '4', '15', '62']
['x_stocks', 'DJFunkyGrrL', 'x_stocks', '6', '45', '62']
['x_stocks', 'dow_live', 'x_stocks', '5', '69', '62']
['uid', 'uid1', 'uid2', 'common', 'token_count1', 'token_count2']
['x_stocks', 'ClosingBellNews', 'x_stocks', '4', '16', '62']
['x_stocks', 'fixedratebonds', 'x_stocks', '7', '193', '62']
['x_stocks', 'BusinessRodrigo', 'x_stocks', '12', '22', '62']
['x_stocks', 'mradamdavies', 'x_stocks', '5', '11', '62']
['x_stocks', 'nasdaq_live', 'x_stocks', '8', '70', '62']
['x_stocks', 'onlyonecent', 'x_stocks', '4', '9', '62']
['x_stocks', 'stocksmarket_in', 'x_stocks', '5', '85', '62']
['x_stocks', 'tradepips', 'x_stocks', '5', '171', '62']
tuples count: 258
12/06/27 11:37:56 INFO mapred.Task: Task:attempt_local_0008_r_000000_0 is done. And is in the process of commiting
12/06/27 11:37:56 INFO mapred.LocalJobRunner:
12/06/27 11:37:56 INFO mapred.Task: Task attempt_local_0008_r_000000_0 is allowed to commit now
12/06/27 11:37:56 INFO mapred.FileOutputCommitter: Saved output of task 'attempt_local_0008_r_000000_0' to file:/Users/paco/src/concur/sampleapp/output/similarity
12/06/27 11:37:58 INFO mapred.LocalJobRunner: reduce > reduce
12/06/27 11:37:58 INFO mapred.Task: Task 'attempt_local_0008_r_000000_0' done.
12/06/27 11:37:59 INFO util.Hadoop18TapUtil: deleting temp path output/token/_temporary
12/06/27 11:37:59 INFO util.Hadoop18TapUtil: deleting temp path output/similarity/_temporary
bash-3.2$ more output/similarity/part-00000
uid recommend_uid similarity
carbonfiberxrm ClosingBellNews 0.14586499149789456
ClosingBellNews carbonfiberxrm 0.14586499149789456
carbonfiberxrm DJFunkyGrrL 0.08697707640712563
DJFunkyGrrL carbonfiberxrm 0.08697707640712563
ClosingBellNews DJFunkyGrrL 0.14907119849998599
DJFunkyGrrL ClosingBellNews 0.14907119849998599
CloudStocks DJFunkyGrrL 0.12060453783110545
DJFunkyGrrL CloudStocks 0.12060453783110545
DJFunkyGrrL ElmoreNicole 0.1797866299901979
ElmoreNicole DJFunkyGrrL 0.1797866299901979
alexiolo_ EsNeey 0.8603090020146066
EsNeey alexiolo_ 0.8603090020146066
BiznComps Essy_M 0.8
Essy_M BiznComps 0.8
ClosingBellNews GregWHoward 0.16666666666666666
GregWHoward ClosingBellNews 0.16666666666666666
CloudStocks GregWHoward 0.08989331499509895
GregWHoward CloudStocks 0.08989331499509895
DJFunkyGrrL GregWHoward 0.09938079899999065
GregWHoward DJFunkyGrrL 0.09938079899999065
fixedratebonds GregWHoward 0.07198157507486945
GregWHoward fixedratebonds 0.07198157507486945
fixedratebonds HeftyStocks 0.1731409663438982
HeftyStocks fixedratebonds 0.1731409663438982
DavidDginger InfoEstate 0.7144345083117604
InfoEstate DavidDginger 0.7144345083117604
dow_live IsabelSignals 0.055236817666610746
IsabelSignals dow_live 0.055236817666610746
alexiolo_ JJlOpEz_ 0.8838834764831844
JJlOpEz_ alexiolo_ 0.8838834764831844
BeursIndex JWGreen_ 0.6837634587578276
JWGreen_ BeursIndex 0.6837634587578276
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment