Graph partitioning is a key technique for a wide range of computingtasks over big graph data. A big graph usually needs to be loadedinto clusters and stored as partitions to facilitate graph computa-tion. However, the vertex locality is derived from the global graph instate-of-the-art of partitioning, which suffers from a high time over-head when the graph data exceeds available memory. In this paper,we propose a sample-based approach to partition graphs approximatelyin order to load a big graph into a distributed system efficiently.Firstly, we provide a theoretical bound of error gain of graph parti-tioning and put forward a degree bias sampling method to decreasethe expectation of error gain. Secondly, we propose a two-pass algo-rithm, where a representative graph is sampled and partitioned approx-imately as a partitioning function in memory in the first scan andthe reminder of the graph is allocated streamlessly in the secondscan. In comparisons with a number of previous advanced techniques,our approach can dramatically improve partitioning efficiency with asmall memory and shows better performance of edge-cuts and balance.