MemoryError: INNER JOIN in a cluster of 65gb ram 
#### Code

```python
import pandas as pd
df_trans_items = pd.read_csv('../data/raw/df_transaction_item_201905091747.csv', dtype={'stock_code': str, 'system_reference': str}) #1.5gb
df_trans = pd.read_csv('../data/raw/df_transaction_201905091745.csv', dtype={'system_reference': str, 'trans_reference': str, 'pos_user_code': str  })                  # 1.0 gb

df_stock = pd.read_csv('../data/raw/df_stock_201905091744.csv')                        # 6.2 mb
df_trans_flight = pd.read_csv('../data/raw/df_transaction_flight_201905091747.csv')     # 5.7 mb
df_stock_category = pd.read_csv('../data/raw/df_stock_category_201905091744.csv')                # 12.7 kb
df_pos = pd.read_csv('../data/raw/df_pos_201905091657.csv')                             # 3.8 kb
df_shops = pd.read_csv('../data/raw/df_shop_201905091744.csv')                          # 2.1 kb
df_concessionaire = pd.read_csv('../data/raw/df_concessionaire_201905091656.csv')
df_ikdec = pd.read_csv('../data/raw/df_ikdec_201905091657.csv')
df_trans_staff = pd.read_csv('../data/raw/df_transaction_staff_201905091749.csv')       # 872 bytes

stock_category_merged = pd.merge(df_stock, df_stock_category, how='inner', 
         on=['company_code', 'shop_code', 'category_code'], suffixes=('_stock', '_stck_category'))

stock_concessionaire_merged = pd.merge(stock_category_merged, df_concessionaire, how='inner', 
         on=['company_code'], suffixes=('_stock', '_concessionaire'))

stock_shop_merged = pd.merge(stock_concessionaire_merged, df_shops, how='inner', 
         on=['company_code', 'shop_code'], suffixes=('_stock', '_shops'))

trans_items_merged = pd.merge(df_trans, df_trans_items, how='inner', 
         on=['system_reference'], suffixes=('_trans', '_trans_items'))

trans_pos_merged = pd.merge(trans_items_merged, df_pos, how='inner', 
         on=['pos_code', 'shop_code'], suffixes=('_trans', '_pos'))

# And here fails 
df_final = pd.merge(trans_pos_merged, stock_shop_merged, how='inner', 
         on=['shop_code'], suffixes=('_trans', '_shop'))
```
#### Problem description
So I have some tables exported from PostgreSQL, and I wanted to join all of them, I saw in my laptop(archlinux x64) that the ram consumption got to 14gb, and I switched to a linux cluster my company has. And there keep happening the same, all the joins works fine until the last one where it always outputs MemoryError, I tried **del** variables and using Dask without luck. So not sure how I can do to join all this tables, the bigger files are 
df_trans.shape - (7807645, 11) 
df_trans_items.shape - (11618559, 14)

But the ones used for the merge of df_final are
trans_pos_merged.shape = (11618500, 25)
stock_shop_merged.shape = (101441, 16)

So I'm not sure from where it comes the MemoryError since I think it can fit in 65gb ram.

```python
---------------------------------------------------------------------------
MemoryError                               Traceback (most recent call last)
<ipython-input-7-0e1d858584c1> in <module>
----> 1 df_final = pd.merge(trans_pos_merged, stock_shop_merged, how='inner', 
         on=['shop_code'], suffixes=('_trans', '_shop'))

/usr/lib64/python3.6/site-packages/pandas/core/reshape/merge.py in merge(left, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator, validate)
     46                          copy=copy, indicator=indicator,
     47                          validate=validate)
---> 48     return op.get_result()
     49 
     50 

/usr/lib64/python3.6/site-packages/pandas/core/reshape/merge.py in get_result(self)
    544                 self.left, self.right)
    545 
--> 546         join_index, left_indexer, right_indexer = self._get_join_info()
    547 
    548         ldata, rdata = self.left._data, self.right._data

/usr/lib64/python3.6/site-packages/pandas/core/reshape/merge.py in _get_join_info(self)
    742             join_index, left_indexer, right_indexer = \
    743                 left_ax.join(right_ax, how=self.how, return_indexers=True,
--> 744                              sort=self.sort)
    745         elif self.right_index and self.how == 'left':
    746             join_index, left_indexer, right_indexer = \

/usr/lib64/python3.6/site-packages/pandas/core/indexes/base.py in join(self, other, how, level, return_indexers, sort)
   3287         if not self.is_unique and not other.is_unique:
   3288             return self._join_non_unique(other, how=how,
-> 3289                                          return_indexers=return_indexers)
   3290         elif not self.is_unique or not other.is_unique:
   3291             if self.is_monotonic and other.is_monotonic:

/usr/lib64/python3.6/site-packages/pandas/core/indexes/base.py in _join_non_unique(self, other, how, return_indexers)
   3406                                                  [other._ndarray_values],
   3407                                                  how=how,
-> 3408                                                  sort=True)
   3409 
   3410         left_idx = ensure_platform_int(left_idx)

/usr/lib64/python3.6/site-packages/pandas/core/reshape/merge.py in _get_join_indexers(left_keys, right_keys, sort, how, **kwargs)
   1144     join_func = _join_functions[how]
   1145 
-> 1146     return join_func(lkey, rkey, count, **kwargs)
   1147 
   1148 

pandas/_libs/join.pyx in pandas._libs.join.inner_join()

MemoryError: 
```

#### Expected Output
The merge of trans_pos_merged and stock_shop_merged.

#### Output of ``pd.show_versions()``

<details>
INSTALLED VERSIONS
------------------
commit: None
python: 3.6.7.final.0
python-bits: 64
OS: Linux
OS-release: 3.10.0-862.14.4.el7.x86_64
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8

pandas: 0.24.2
pytest: None
pip: 19.1.1
setuptools: 39.0.1
Cython: None
numpy: 1.16.2
scipy: 1.2.1
pyarrow: None
xarray: None
IPython: 7.3.0
sphinx: None
patsy: None
dateutil: 2.8.0
pytz: 2018.9
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: 3.0.3
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml.etree: None
bs4: None
html5lib: None
sqlalchemy: 1.2.18
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None
gcsfs: None
</details>
