Edit in JSFiddle

var diameter = 1000,
    format = d3.format(",d"),
    color = d3.scale.category20c();

var bubble = d3.layout.pack()
    .sort(null)
    .size([diameter, diameter])
    .padding(3);

var svg = d3.select("body").append("svg")
    .attr("width", diameter)
    .attr("height", diameter)
    .attr("class", "bubble");



d3.csv("https://data.cityofchicago.org/resource/i6bp-fvbx.csv", function (error, root) {
	if (error) throw error;
	
    var streetNames = [];
	var streetCount = [];
	var streetSuffix = [];
    
	var data=[]; //3D array of nameList, nameCount, ethnicity
	var dobj=[]; //array formated specifically for hierarchical processing 
	
	root.forEach(function (d) {
		
        //add street if not in array
        if (streetNames.indexOf(d["Street "]) === -1) 
        {
            streetNames.push(d["Street "]);
            streetCount.push(1);
            streetSuffix.push([d["Suffix"]]);
        } 
        else //duplicate street
        {
            for (var i = 0; i < streetNames.length; i++) {
                if (streetNames[i] === d["Street "]) 
                {
                    streetCount[i]++;
                    streetSuffix[i].push(d["Suffix"]);
                }
            }

        }
        
	});
	
	
	data = [streetNames, streetCount, streetSuffix];
    
	for (var di=0;di<data[0].length;di++) 
    {
	  dobj.push({"key":di,"value":data[1][di]});
	}

	
	display_pack({children: dobj});

	function display_pack(root) {
		var node = svg.selectAll(".node")
			.data(bubble.nodes(root)
			.filter(function(d) { return !d.children; }))
			.enter().append("g")
			.attr("class", "node")
			.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; })
			.style("fill", function(d) { 
										//color is based on ethnicity
										return color(data[2][d.key]); })
			.on("mouseover", function(d) {
				d3.select(this).style("fill", "gold"); 
				showToolTip(" "+data[0][d.key]+"<br> "+data[2][d.key]+"<br>count: "+data[1][d.key]+" ",d.x+d3.mouse(this)[0]+50,d.y+d3.mouse(this)[1],true);
				//console.log(d3.mouse(this));
			})
			//.on("mousemove", function(d,i) {
				//tooltipDivID.css({top:d.y+d3.mouse(this)[1],left:d.x+d3.mouse(this)[0]+50});
			//})	
			.on("mouseout", function() {
				d3.select(this).style("fill", function(d) { return color(data[2][d.key]); });
				showToolTip(" ",0,0,false);
			});


	  node.append("circle")
		  .attr("r", function(d) { return d.r; });

	  node.append("text")
		  .attr("dy", ".3em")
		  .style("text-anchor", "middle")
		  .style("fill","black")
		  .text(function(d) { return data[0][d.key].substring(0, d.r / 3); });
	}
	
	
	function showToolTip(pMessage,pX,pY,pShow)
	{
	  if (typeof(tooltipDivID)==="undefined") {
		tooltipDivID =$('<div id="messageToolTipDiv" style="position:absolute;display:block;z-index:10000;border:2px solid black;background-color:rgba(0,0,0,0.8);margin:auto;padding:3px 5px 3px 5px;color:white;font-size:12px;font-family:arial;border-radius: 5px;vertical-align: middle;text-align: center;min-width:50px;overflow:auto;"></div>');

		$('body').append(tooltipDivID);
	  }
	  if (!pShow) { tooltipDivID.hide(); return;}
	  //MT.tooltipDivID.empty().append(pMessage);
	  tooltipDivID.html(pMessage);
	  tooltipDivID.css({top:pY,left:pX});
	  tooltipDivID.show();
	}
	
});

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
text {
  font: 10px sans-serif;
}